1. 程式人生 > >g++ -I(大寫i) 與-L(大寫l)-l(小寫l) 的作用與學習

g++ -I(大寫i) 與-L(大寫l)-l(小寫l) 的作用與學習

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

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

例如:libz.so

g++ -o compress  compress.cpp  -I/home/include/  -L/lib/  -lz

(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去掉就是庫名了。