ld: bibliothèque introuvable -lcrt0.o sur OSX 10.6 avec gcc / clang-drapeau statique

Quand j'essaie de compiler le programme suivant:

#include <stdio.h>

int main(void)
{
  printf("hello worldn");
  return 0;
}

Sur OS X 10.6.4, avec les options suivantes:

gcc -static -o blah blah.c

Elle retourne ceci:

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

quelqu'un d'autre A rencontré ce problème, ou est-ce quelque chose que personne d'autre n'a été touché avec encore? Toutes les corrections?

Merci

41
demandé sur browneye 2010-09-27 07:52:29

2 réponses

ça ne marchera pas. À partir de la man page gcc:

cette option ne fonctionnera pas sur Mac OS X à moins que toutes les bibliothèques (y compris libgcc.a) ont également été compilés avec-static. Depuis ni une version statique de libSystem.dylib ni crt0.o sont fournis, cette option n'est pas utile pour la plupart des gens.

51
répondu Nate 2010-09-27 04:00:49

Vous pouvez également essayer de LLVM LLD de l'éditeur de liens - je n'ai prédéfinis version pour mes deux principaux Systèmes d'exploitation - https://github.com/VerKnowSys/Sofin-llds

celui - ci me permet de lier par exemple: "Qemu" correctement-ce qui est impossible avec ld préinstallé par Apple.

Et dernière question est - à construire GCC-vous avec libstdc++ (ne pas).

0
répondu dmilith 2016-09-16 16:54:11