2012-07-14 53 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