温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

c语言静态库与共享库的制作

发布时间:2020-06-16 16:58:28 来源:网络 阅读:1607 作者:wx57ad16f277310 栏目:编程语言

/**

* 此处的例子中所有的文件都在同一个目录下

* 若不在同一个路径下,请自行修改

**/


静态库:

1> 编译源文件生成目标文件

gcc -c file1.c [file2.c ...]    //单文件注意文件名

2> 使用ar命令打包

ar -crv libxxx.a *.o        //库文件必须以lib开头,后缀为.a

-c 创建

-v 显示过程

-r 插入文件

3> 使用静态库

方式一:将库文件当普通.o文件一样对待

gcc -o [execfilename] *.o libxxx.a

方式二:指定库文件路径与名称

gcc -o [execfilename] *.o [-L.] -lxxx

其中

-L:指定库文件路径(使用系统库文件可不指定)

-l:指定库文件名(去掉lib前缀与.a后缀)


4> 查看库文件、目标文件、可执行文件包含的函数

nm filename


共享库:

1> 生成与位置无关的.o文件

gcc -fPIC -c *.c -Iinclude    

2> 生成.so文件

gcc -shared -o libxxx.so *.o

3> 使用

方法一

gcc main.c libxxx.so -o app 

方法二

gcc main.c -L. -l xxx -o app 

使用ldd 可执行文件名查看依赖的共享库

解决方案

1.将自己的库文件放到/lib或/lib64里面(不建议)

2.配置LD_LIBRARY_PATH变量

export LD_LIBRARY_PATH = ./lib

2(或).修改配置文件

vi ~/.bashrc

export LD_LIBRARY_PATH=/path/to/yourlibfile


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI