国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

淺談Linux C語言動態(tài)庫及靜態(tài)庫

2019-11-02 16:49:59
字體:
來源:轉載
供稿:網(wǎng)友

假設在math目錄下已編輯好add.c sub.c div.c mul.c func_point.c文件,func_point.c為包含main()的源文件!

動態(tài)庫的制作:

方法一:

gcc -c -fPIC add.c sub.c div.c mul.c //-c表示生成.o目標文件,-f后加一些編譯選項,PIC表示與位置無關gcc -shared -o libmymath.so add.o sub.o mul.o div.o//創(chuàng)建共享庫mymath,添加add.o,sub.o,mul.o,div.o目標文件sudo mv libmymath.so /usr/libgcc func_point.c -lmymath//-l后面加動態(tài)鏈接庫名字

方法二:

gcc -c -fPIC add.c sub.c div.c mul.c //-c:生成.o目標文件,-f后加一些編譯選項,PIC表示與位置無關gcc -shared -o libmymath.so add.o sub.o mul.o div.o//創(chuàng)建共享庫mymath,添加add.o,sub.o mul.o div.o目標文件export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.//注意此操作后把當前目錄加入環(huán)境變量中gcc func_point.c -L. -lmymath//-l后面加動態(tài)鏈接庫名字

方法三:

gcc -c -fPIC add.c sub.c div.c mul.c //-c:生成.o目標文件,-f后加一些編譯選項,PIC表示與位置無關gcc -shared -o libmymath.so add.o sub.o mul.o div.o//創(chuàng)建共享庫mymath,添加add.o,sub.o mul.o div.o目標文件sudo vi /etc/ld.so.conf//把你的動態(tài)庫路徑加入此文件中sudo ldconfiggcc func_point.c -L. -lmymath//-l后面加動態(tài)鏈接庫名字

ldd   顯示可執(zhí)行程序所需的共享庫。

定義好框架,不斷增加動態(tài)庫!!

靜態(tài)庫制作:

ar -crs libmymath.a add.o sub.o div.o mul.o/*創(chuàng)建靜態(tài)庫mymath,添加add.o,sub.o,mul.o,div.o,-c:創(chuàng)建歸檔文件 -r:插入 -s:若歸檔文件中包含了對象模式,可利用此參數(shù)建立備存文件的符號表  ar -crs libmymath.a *.o */
gcc func_point.c -L. -lmymath//-L在哪個目錄下找?guī)?-l找哪個庫,-lm可以鏈接到標準算數(shù)庫,-lpthread可以連接到Linux標準線程庫
ar -d libmymath.a add.o//刪除一個
ar -r libmymath.a add.o//增加一個

靜態(tài)庫在程序鏈接時用到,鏈接器把程序所需的代碼從靜態(tài)庫中拷貝到可執(zhí)行程序中,可執(zhí)行程序會增大;動態(tài)庫在程序加載時用到,程序在加載時,會先檢查需要哪些動態(tài)庫連接,然后從內(nèi)存中找到這些動態(tài)庫的地址,最后加載動態(tài)庫運行程序。

以上這篇淺談Linux C語言動態(tài)庫及靜態(tài)庫就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁海县| 桃源县| 辽中县| 古蔺县| 凌源市| 连云港市| 沿河| 个旧市| 吉隆县| 尚义县| 台北市| 宜昌市| 洱源县| 怀仁县| 靖安县| 祥云县| 叶城县| 奎屯市| 枝江市| 新蔡县| 息烽县| 务川| 元阳县| 新化县| 乌兰浩特市| 湟中县| 林芝县| 图们市| 柞水县| 都江堰市| 桂林市| 西盟| 乐陵市| 巴马| 湖口县| 永春县| 青冈县| 宁晋县| 班玛县| 通城县| 黄山市|