1.动态库模块

modelu_c.h:

#ifndef _MODULE_C_H_

#define _MODULE_C_H_

#ifdef __cplusplus

extern C

{

#endif

extern int add_nums(int m, int n);

#ifdef __cplusplus

};

#endif

#endif //end of _MODULE_C_H_ module_c.c

#include "module_c.h"

int add_nums(int m, int n)

{

return m+n;

}

2. 模块调用

test.c

#include

int main()

{

int ret = 0;

ret=add_nums(3, 7);

printf("result is %d\n", ret);

return 0;

}

3.模块编译

gcc module_c.c -fPIC -shared -o libmodulec.so

-fPIC  :  表示生成位置无关代码

查看文件格式:

yanbo@ubuntu:~/projects/swig_prj$ file libmodulec.so

libmodulec.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xa6de85a6dc105358dd2046a770862f6ac7001fa7, not stripped

4.动态库调用

gcc test.c -L. -lmodulec -o test

-L.  :  动态库的搜索路径

-l*  :  *表示动态库名称,系统会按规则在*前加lib,*后加.so

查看链接情况:

yanbo@ubuntu$ ldd test

linux-gate.so.1 => (0xb772e000)

libmodulec.so => not found

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7556000)

/lib/ld-linux.so.2 (0xb772f000) 通过搜索,原因为-L.所指定的当前目录不在LD_LIBRARY_PATH全局变量记录之内,所以无法找到相应动态库。以下为一篇解决该问题的博客:

ldd xxx.so not found解决方案,在此感谢作者。以方法一为例:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yanbo/projects/swig_prj/ 重新ldd:

yanbo@ubuntu$ ldd test

linux-gate.so.1 => (0xb772e000)

libmodulec.so => (0xb773a000)

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7556000)

/lib/ld-linux.so.2 (0xb772f000) 执行调用:

yanbo@ubuntu:~/projects/swig_prj$ ./test

result is 10 调用成功。

linux下面编译库文件,Linux下动态链接库文件的编译与使用相关推荐

  1. Linux和Windows的遍历目录下所有文件的方法对比

    首先两者读取所有文件的方法都是采用迭代的方式,首先用函数A的返回值判断目录下是否有文件,然后返回值合法则在循环中用函数B直到函数B的返回值不合法为止.最后用函数C释放资源. 1.打开目录 #inclu ...

  2. Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数.目录个数,本文使用ls命令配合管理.grep命令实现统计需求,需要的朋友可以参考下 1) 统计当前文件夹下文件的个数 复制代码 代码如下: l ...

  3. linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

  4. linux du 文件大小排序,du命令 实现Linux 某个文件夹下的文件按大小排序

    1. df -lh 2. du -s /usr/* | sort -rn 这是按字节排序 3. du -sh /usr/* | sort -rn 这是按兆(M)来排序 4.选出排在前面的10个 du ...

  5. 【转】【Linux】Linux下统计当前文件夹下的文件个数、目录个数

    [转][Linux]Linux下统计当前文件夹下的文件个数.目录个数 统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的 ...

  6. Linux统计文件夹下的文件数量

    统计某文件夹下目录文件的个数,统计文本文件的数量 Linux下有三个命令:ls.grep.wc 通过这三个命令的组合可以统计目录下文件及文件夹的个数.ls常用命令介绍 统计当前目录下文件的个数(不包括 ...

  7. Linux C 读取文件夹下所有文件(包括子文件夹)

    Linux C 读取文件夹下所有文件(包括子文件夹) 递归读取某文件夹及其子文件夹下所有文件名 深入探讨:linux中遍历文件夹下的所有文件 Linux C :遍历输出指定目录下的所有文件 Linux ...

  8. linux 压缩当前文件夹下所有文件

    linux zip压缩.压缩当前文件夹下所有文件,压缩为a.zip.命令行的方法是怎样. zip -r fileName.zip 文件夹名 tar tar命令可以用来压缩打包单文件.多个文件.单个目录 ...

  9. diff 比较两个文件夹下各个文件的内容(差别)

    文章目录 1 比较文件夹下各个文件的内容 其他参考 diff的参数,输出 备注 标题:diff 比较两个文件夹下各个文件的内容(差别) 1 比较文件夹下各个文件的内容 很简单,就一行代码:diff - ...

  10. ubuntu系统(四):批量化查看pcd文件, 批量化修改图像的像素尺寸、查看当前文件夹下的文件数量

    目录 一.ubuntu批量化查看pcd文件 二.ubuntu批量化修改图像的像素尺寸 三 查看当前文件夹下的文件数量 一.ubuntu批量化查看pcd文件 将下面的脚本与要批量化查看的pcd文件放在一 ...

最新文章

  1. Linux进程间的通信----->共享内存
  2. SQL Server Management Studio 2012 设置脚本默认保存路径
  3. 关于Viual Studio 改变编辑器背景背景及背景图片
  4. Android 简单记事本
  5. Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?
  6. keepalived(3)——解决无法用vip来访问的问题
  7. 前端学习(875):dom事件流理论
  8. python中如何替换某列特定数值_python 怎么根据两列值,修改对应的某列值,其中一列的为需要修改的列标题...
  9. java二期_享学二期java架构师
  10. MySQL 直接存储图片并在 html 页面中展示,点击下载
  11. ajax传输文件大小有没有限制_巧改文件扩展名,1秒解除微信传输文件大小限制!...
  12. 组态王登录服务器为空,组态王服务器与客户端配置
  13. 每个Java程序员必须知道的5个JVM命令行标志
  14. 1104 LED Test
  15. mysql下的常用操作
  16. android触摸 apk,超级触控(流畅触屏)apk
  17. 免费搭建个人网站流程!马上拥有自己的网站!
  18. 利用html5画出五角星画出星空
  19. 【esp8266】③esp8266对接天猫精灵实现语音控制
  20. 信号完整性分析学习--12--IBIS模型

热门文章

  1. 玩转Puppeteer
  2. 如何将pdf版的文书文字提取出来?
  3. Andriy Solovey
  4. Jquery页面导航(菜单悬停,折叠效果)
  5. 7 款 Mac 工具,提高你的效率!
  6. android模拟器skin,Android自定义模拟器skin
  7. Java currentTimeMillis() 对比 nanoTime()
  8. AlertDialog弹出对话框
  9. 妈妈的爱是在我遇到了难题做不出来的时候
  10. pr玩转特效的九大技巧