2008年11月13日 星期四

如何在編譯程式時link自己的libarary和header file

在C編譯器下,我們可以利用-I的旗標告訴編譯器,標頭檔案放在其他子目錄

例如:
$gcc -I/usr/sample/include sample.c
這指示編譯器去/usr/sample/include的目錄下找尋必要的header檔

再來我們想要link我們自己的libarary,
我們可以利用-L跟-l來告訴編譯器函式庫的位置與欲link的函式庫的名稱

例如:
$gcc -o sample sample.c /usr/lib/libm.a
上述的指令是直接跟gcc說述的指令是直接跟gcc說明我要link的函式庫的位置與名稱

$gcc -o sample sample.c -L/usr/lib -lsample
上述的指令是在跟gcc說明-L(放libarary的檔案路徑) -l(欲link的函式庫名稱)
通常同一個函式庫會有動態函式庫和靜態函式庫若是用上述的方式link gcc會先去link動態函式庫

沒有留言: