重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
/**
成都创新互联专注于察雅网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供察雅营销型网站建设,察雅网站制作、察雅网页设计、察雅网站官网定制、小程序定制开发服务,打造察雅网络公司原创品牌,更为您提供察雅网站排名全网营销落地服务。
* 此处的例子中所有的文件都在同一个目录下
* 若不在同一个路径下,请自行修改
**/
静态库:
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