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
有没有其他人遇到过这个问题,还是没有其他人受到影响? 任何修复?
谢谢
这是行不通的。 从gcc
的man
页:
除非所有库(包括libgcc.a)都已经使用-static编译,否则此选项在Mac OS X上将不起作用。 由于既没有提供静态版本的libSystem.dylib也没有提供crt0.o,所以这个选项对于大多数人来说是没有用的。
您也可以尝试LLVM LLD链接器 – 我为我的两个主要操作系统预编译了版本 – https://github.com/VerKnowSys/Sofin-llds
这个允许我正确地链接例如:“Qemu” – 这是苹果预装的ld不可能的。
最后一个是 – 用libstdc ++自己构buildGCC(不要)。