/**
* 此处的例子中所有的文件都在同一个目录下
* 若不在同一个路径下,请自行修改
**/
静态库:
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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。