[C++ & Mac] gcc und clang kompilieren nicht mehr



  • Hi,

    seit dem Upgrade auf Lion kann ich keine C++ Programme mehr mit gcc oder clang kompilieren.

    Undefined symbols for architecture x86_64:
      "std::cout", referenced from:
          _main in ccfPIvbK.o
      "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
          _main in ccfPIvbK.o
      "std::ios_base::Init::Init()", referenced from:
          __static_initialization_and_destruction_0(int, int)in ccfPIvbK.o
      "std::ios_base::Init::~Init()", referenced from:
          ___tcf_0 in ccfPIvbK.o
    ld: symbol(s) not found for architecture x86_64
    collect2: ld returned 1 exit status
    

    Hat jemand ne Idee?



  • Das sind linker Fehler.
    Zeig mal den Commandline aufruf.

    Das neue XCode hast du eh geladen, oder?



  • Hast du schon auf XCode 4.1 upgedatet? Apple hat fuer Lion eine neue Version herausgebracht.



  • Ja, 4.1 ist installiert. Möchte es aber auch im Terminal kompilieren. Mit g++ funktioniert es sogar aber mit gcc und clang nicht.



  • shizzo schrieb:

    Mit g++ funktioniert es sogar aber mit gcc und clang nicht.

    clang kenn ich nicht, aber auf den Systemen die ich kenne ist gcc ein C-Compiler und g++ der C++-Compiler. Genauer gesagt ist ist g++ der gcc, linkt aber noch die C++ libraries mit, weshalb gcc mit C++ im allgemeinen Linkerfehler spuckt wie bei dir.



  • Bei clang verhaelt sich clang++ zu clang genauso wie g++ zu gcc.

    Will sagen: Kompiliere deine C++-Programme mit g++ oder clang++. Oder linke noch manuell die C++-stdlib dazu, das machen die beiden naemlich auch.



  • Super, danke 👍


Anmelden zum Antworten