2013-02-04 17 views
6

gefunden Ich versuche, eine grundlegende C++ Programm für die Schule zu kompilieren und zu, wenn ich es aus dem Mac-Terminal (10.7.6) Versuchen ausgeführt wird, erhalte ich diese Meldung:ld: Bibliothek nicht für -lgcc_ext.10.5

ld: library not found for -lgcc_ext.10.5 
collect2: error: ld returned 1 exit status 

Ich bin definitiv im richtigen Verzeichnis und installierte XCode Command Line Tools. Hier ist meine Eingabeaufforderung:

g++ -o chapter_2 hello_world.cpp 

Hier ist meine grundlegende C++ - Programm.

#include <iostream> 

using namespace std; 

int main(){ 

    cout << "Hello world" << endl; 

} 
+0

ist libgcc_ext.10.5. * Auf dem System vorhanden? – EHuhtala

Antwort

0

Ich bin kein Mac Kerl, aber ich erkenne das Problem ist, dass der Linker die Bibliothek nicht finden kann, (libgcc_ext.10.5), weil die Entwicklungsumgebung nicht ordnungsgemäß eingerichtet ist. Ich würde erwarten, dass es in/usr/lib oder/usr/local/lib oder etwas in diesem Sinne ist. Sie könnten versuchen, eine ld --help zu tun und sehen, wenn Sie herausfinden können, wie der Linker-Suchpfad angegeben ist. (ld ist das Programm, das das Linken durchführt, g ++ ruft es auf, wenn es kompiliert wird.) Suchen Sie dann die Bibliothek auf Ihrem Computer und fügen Sie diesen Pfad dem ld-Suchpfad hinzu.

1

Wie Judd darauf hingewiesen hat, ist das Problem, dass der Linker libgcc_ext.10.5 nicht finden kann. Obwohl ich keine ideale Lösung dafür habe, funktionierte für mich die Installation von gcc-4.8 unter Verwendung von homebrew und die Verwendung eines neueren gcc.

brew install gcc48 

Ich glaube, es gibt jetzt sogar gcc49. Mit diesem konnte ich ohne Probleme kompilieren (obwohl ich $ gcc-4.8 ... in der Konsole verwenden musste, wie $ gcc ... immer noch auf die ältere GCC-Version zeigt.

1

Ich hatte das gleiche Problem, auf . OS X 10.8, sowohl mit aktuellen XCode und gcc von Homebrew installiert

Als ich $ which g++ geprüft gab es /usr/local/bin/g++

So kommentierte ich diesen Weg in .bash_profile.

#PATH="/usr/local/bin:${PATH}" 

Jetzt gibt $ which g++ gibt /usr/bin/g++ und seine Version gibt an, dass es von XCode ist und es keinen ld: library not found for -lgcc_ext.10.5 Fehler gibt.

+0

Ich hatte ein ähnliches Problem, und das funktionierte für mich. Denken Sie daran, die Zeile in .bash_profile auskommentieren, nachdem Sie fertig sind, oder Sie haben keinen Zugriff auf alles, was Sie mit Homebrew installiert haben. –

Verwandte Themen