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


本文标题:c语言静态库与共享库的制作
标题链接:http://scyanting.com/article/gojiho.html