g++ -I(大寫i) 與-L(大寫l)-l(小寫l) 的作用與學習 使用靜態庫 編譯的時候 需要加上 static


linux 下 g++編譯程序時,-I(大寫i) 與-L(大寫l)-l(小寫l) 的作用

作為一個linux入門級使用者,gcc/g++ 的簡單操作已經用過多次, 但是有時稍微復雜一點的程序就會使用到庫。在遇到問題的時候我查了挺多前輩總結的資料,也留個腳本希望對朋友們有個幫助。如果也能處理你的問題,我會感到很開心,嘻嘻。

例如:libz.so

g++ -o compress  compress.cpp  -I/home/include/  -L/lib/  -lz      //別忘記了小  l和z  l是指定庫名

(1) -I (大寫i)

編譯程序按照-I指定的路進去搜索頭文件。
-I/home/include/表示將-I/home/include/目錄作為第一個尋找頭文件的目錄,尋找的順序是:
 /home/include/ -->/usr/include-->/usr/local/include

(2)-L(大寫l)

表示:編譯程序按照-L指定的路進去尋找庫文件,一般的在-L的后面可以一次用-l指定多個庫文件。
-L/lib/表示到/lib/目錄下找庫文件

(3)-l(小寫l)

表示:編譯程序到系統默認路進搜索,如果找不到,到當前目錄,如果當前目錄找不到,則到LD_LIBRARY_PATH等環境變量置頂的路進去查找,如果還找不到,那么編譯程序提示找不到庫。
本例子使用的是gunzip庫,庫文件名是libz.so,庫名是z。很容易看出,把庫文件名的頭lib和尾.so去掉就是庫名了。


免責聲明!

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



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