/**
成都創(chuàng)新互聯(lián)專注于察雅網(wǎng)站建設(shè)服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供察雅營銷型網(wǎng)站建設(shè),察雅網(wǎng)站制作、察雅網(wǎng)頁設(shè)計、察雅網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務,打造察雅網(wǎng)絡公司原創(chuàng)品牌,更為您提供察雅網(wǎng)站排名全網(wǎng)營銷落地服務。
* 此處的例子中所有的文件都在同一個目錄下
* 若不在同一個路徑下,請自行修改
**/
靜態(tài)庫:
1> 編譯源文件生成目標文件
gcc -c file1.c [file2.c ...] //單文件注意文件名
2> 使用ar命令打包
ar -crv libxxx.a *.o //庫文件必須以lib開頭,后綴為.a
-c 創(chuàng)建
-v 顯示過程
-r 插入文件
3> 使用靜態(tài)庫
方式一:將庫文件當普通.o文件一樣對待
gcc -o [execfilename] *.o libxxx.a
方式二:指定庫文件路徑與名稱
gcc -o [execfilename] *.o [-L.] -lxxx
其中
-L:指定庫文件路徑(使用系統(tǒng)庫文件可不指定)
-l:指定庫文件名(去掉lib前綴與.a后綴)
4> 查看庫文件、目標文件、可執(zhí)行文件包含的函數(shù)
nm filename
共享庫:
1> 生成與位置無關(guān)的.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 可執(zhí)行文件名查看依賴的共享庫
解決方案
1.將自己的庫文件放到/lib或/lib64里面(不建議)
2.配置LD_LIBRARY_PATH變量
export LD_LIBRARY_PATH = ./lib
2(或).修改配置文件
vi ~/.bashrc
export LD_LIBRARY_PATH=/path/to/yourlibfile