Подтвердить что ты не робот

Ld: библиотека не найдена для -lcrt0.o на OSX 10.6 с gcc/clang -статическим флагом

Когда я пытаюсь создать следующую программу:

#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

Кто-нибудь еще сталкивался с этим, или это то, о чем еще никто не пострадал? Любые исправления?

Спасибо

4b9b3361

Ответ 1

Это не работает. На странице man для gcc:

Этот параметр не будет работать в Mac OS X, если все библиотеки (в том числе libgcc.a) также не были скомпилированы с -статическим. Поскольку ни статическая версия libSystem.dylib, ни crt0.o не предоставляются, этот параметр не подходит большинству людей.

Ответ 2

Вы также можете попробовать LLVM LLD linker - я сделал предварительно подготовленную версию для двух основных ОС - https://github.com/VerKnowSys/Sofin-llds

Это позволяет мне ссылаться на exemple: "Qemu" правильно - что невозможно с ld, предустановленным Apple.

И последний из них - построить GCC самостоятельно с помощью libstdС++ (do not).