gcc -I -L -l區別

gcc -I -L -l區別



我們用gcc編譯程序時,可能會用到“-I”(大寫i),“-L”(大寫l),“-l”(小寫l)等參數,下面做個記錄:


例:

gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld


上面這句表示在編譯hello.c時:


-I /home/hello/include表示將/home/hello/include目錄作爲第一個尋找頭文件的目錄,尋找的順序是:/home/hello/include-->/usr/include-->/usr/local/include



-L /home/hello/lib表示將/home/hello/lib目錄作爲第一個尋找庫文件的目錄,尋找的順序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib



 -lworld表示在上面的lib的路徑中尋找libworld.so動態庫文件(如果gcc編譯選項中加入了“-static”表示尋找libworld.a靜態庫文件)


*************************************************************************gcc 用到的環境變量*********************************************************************************

對所有用戶有效在/etc/profile增加以下內容。只對當前用戶有效在Home目錄下的
.bashrc或.bash_profile裏增加下面的內容:
(注意:等號前面不要加空格,否則可能出現 command not found)

#在PATH中找到可執行文件程序的路徑。
export PATH =$PATH:$HOME/bin

#gcc找到頭文件的路徑
C_INCLUDE_PATH=/usr/include/libxml2:/MyLib
export C_INCLUDE_PATH

#g++找到頭文件的路徑
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib
export CPLUS_INCLUDE_PATH

#找到動態鏈接庫的路徑
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib
export LD_LIBRARY_PATH

#找到靜態庫的路徑
LIBRARY_PATH=$LIBRARY_PATH:/MyLib
export LIBRARY_PATH

發佈了23 篇原創文章 · 獲贊 19 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章