Wie lösen 'collect2: ld zurückgegeben, 1 exit status '?
wenn ich meinen source-code in linux bekam ich eine Fehlermeldung wie
qstring.cpp:(.text+0x2c01): undefined reference to `terminate(void)'
collect2: ld returned 1 exit status
Wie dieses problem zu lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
terminate
ist definiert im C++ - standard-Bibliothek, so stellen Sie sicher, dass eine Verlinkung, die in. Wenn Sie mit gcc kompilieren, sollten Sie dieg++
ausführbare Datei zu kompilieren, Quellcode, nicht diegcc
ausführbar:Ausgeführt, wenn Sie als
g++
, der linker automatisch links in die C++ standard-Bibliothek (libstdc++) für Sie. Wenn Sie stattdessen ausführen von gcc als nurgcc
oder Sie direkt aufrufen, linkerld
, dann müssen Sie-lstdc++
sich link in der Bibliothek, z.B.:Müssen Sie herausfinden, welches Objekt-Datei oder Bibliothek
terminate
lebt, und fügen Sie es in Ihrem Compiler - /link-Befehl.Wenn es in einem Objekt-oder Quellcode-Datei, nur geben Sie es an Ihre
gcc
(vorausgesetzt, du bist tatsächlich mitgcc
, wenn nicht, die Methode wird wohl ähnlich sein) - Befehl als normal. Wenn es in eine Bibliothek, schau dir die-L
(library path) und-l
(name der Bibliothek) Optionen.void terminate(void) { raise(9); }