2012-07-14 72 views
18

比方說,我有一個非常簡單的C文件(稱爲foo.c的):由gcc鏈接的默認庫?

int main() 
{ 
    printf("foo"); 
    return 0; 
} 

現在我把GCC:

gcc foo.c 

當我打電話的gcc(不帶選項,如上面例如),默認鏈接庫以及它們位於何處? (在Mac OS X 10.7上)

回答

22

-v選項gcc將導致它傾倒它會使用包括圖書館的路徑和默認庫和目標將在被鏈接文件的默認選項的信息。

如果您提供-Wl,--verbose選項,gcc會將--verbose傳遞給鏈接器,該鏈接器將轉儲到正在查找庫的位置,包括失敗和成功的搜索。

合併這兩個選項,你會看到什麼圖書館有聯繫,以及爲什麼他們在被鏈接。

gcc -v foo.c -Wl,--verbose 
+0

在我的Mac上,ld說--verbose是一個無法識別的選項 – user1516425 2012-07-25 23:45:01

+1

@ user1516425:哦 - 當我看到'gcc'時,我只是假設涉及GNU'ld'。看看Xcode鏈接器的一些文檔,https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/ld.1.html,你可能想看看是否有'-t '鏈接器選項將做到這一點。其他一些要考慮的選項可以在該頁面上的「自省鏈接器選項」標題下找到。 – 2012-07-26 00:24:43

-1

默認情況下,標準庫已鏈接。它們位於/ usr在Linux機器

+2

'PATH'不用於那個。 – zwol 2012-07-14 10:22:08