2010-11-19 17 views

Antwort

2

Sie müssen herausfinden, welche Objektdatei oder Bibliothek terminate lebt und in Ihrem Compile/Link-Befehl enthalten.

Wenn es in einem Objekt oder eine Quelldatei ist, gibt es einfach Ihr gcc (vorausgesetzt, Sie sind eigentlich gcc verwenden, wenn nicht, wahrscheinlich die Methode ähnlich sein wird) Befehl wie pro normal. Wenn es sich in einer Bibliothek befindet, sollten Sie sich die Optionen -L (Bibliothekspfad) und -l (Bibliotheksname) ansehen.

-2

void terminate(void) { raise(9); }

8

terminate in der C++ Standardbibliothek definiert ist, so stellen Sie sicher, dass Sie eine Verknüpfung, dass in. Sie verwenden gcc Unter der Annahme, kompilieren Sie die ausführbare g++ verwenden sollten, den Quellcode zu kompilieren, nicht die gcc ausführbar:

g++ source.cc -o output 

Wenn sie als g++ ausgeführt, der Linker verknüpft automatisch in der C++ Standard-Bibliothek (libstdC++) für Sie. Wenn Sie stattdessen gcc als einfacher gcc ausführen, oder Sie direkt aufrufen, um den Linker ld, dann müssen Sie -lstdc++ hinzufügen, sich in der Bibliothek verknüpfen, z.B .:

gcc source.cc -o output -lstdc++ # Compile directly from source 
ld source1.o source2.o -o output -lstdc++ # Link together object files 
Verwandte Themen