您好,登錄后才能下訂單哦!
/**
* 此處的例子中所有的文件都在同一個目錄下
* 若不在同一個路徑下,請自行修改
**/
靜態庫:
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。