gcc -I -i -L -l 參數區別 / -l(靜態庫/動態庫)


介紹

gcc   - 參數

-I ( i 的大寫)  :指定頭文件路徑(相對路徑或覺得路徑,建議相對路徑)

-i               :指定頭文件名字 (一般不使用,而是直接放在**.c 文件中通過#include<***.h> 添加)

-L              :指定連接的動態庫或者靜態庫路徑(相對路徑或覺得路徑,建議相對路徑)

-l (L的小寫):指定需要鏈接的庫的名字(鏈接 libc.a :-lc       鏈接動態庫:libc.so  : -lc   注意:-l后面直接添加庫名省區“lib”和“.so”或“.a”  )

 
問題:

問題1:-l(L的小寫)鏈接的到底是動態庫還是靜態庫

答案:如果鏈接路徑下同時有 .so 和 .a  那優先鏈接 .so  

問題2:如果路徑下同時有靜態庫和動態庫如何鏈接靜態庫

答案:使用顯示鏈接,       gcc      -l:lib***.a    (將靜態庫的名字顯示寫出來)

或者在 gcc 編譯的時候 加入參數 -static -lXXX, 則可以添加路徑下面的靜態庫。

驗證方法:

可以通過 ldd 命令查看生成的 目標文件鏈接的庫,使用方法: ldd  ***.o

 

-------------------------------------------------------------------------
轉載原文鏈接:https://blog.csdn.net/abcdu1/article/details/86083295


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM