码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-02 00:08:41      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:c语言库文件制作

/**

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

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

**/


静态库:

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


本文出自 “11949201” 博客,请务必保留此出处http://11959201.blog.51cto.com/11949201/1943737

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

标签:c语言库文件制作

原文地址:http://11959201.blog.51cto.com/11949201/1943737

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!