ld:在OSX 10.6上使用gcc / clang -static标志找不到-lcrt0.o的库

当我尝试构build以下程序时:

#include <stdio.h> int main(void) { printf("hello world\n"); return 0; } 

在OS X 10.6.4上,使用以下标志:

 gcc -static -o blah blah.c 

它返回这个:

 ld: library not found for -lcrt0.o collect2: ld returned 1 exit status 

有没有其他人遇到过这个问题,还是没有其他人受到影响? 任何修复?

谢谢

这是行不通的。 从gccman页:

除非所有库(包括libgcc.a)都已经使用-static编译,否则此选项在Mac OS X上将不起作用。 由于既没有提供静态版本的libSystem.dylib也没有提供crt0.o,所以这个选项对于大多数人来说是没有用的。

您也可以尝试LLVM LLD链接器 – 我为我的两个主要操作系统预编译了版本 – https://github.com/VerKnowSys/Sofin-llds

这个允许我正确地链接例如:“Qemu” – 这是苹果预装的ld不可能的。

最后一个是 – 用libstdc ++自己构buildGCC(不要)。