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