Ich habe ein C ++ - Programm, das perfekt in Codeblöcken kompiliert und ausgeführt wird. Jedoch, wenn ich versuche, es vom Terminal mit zu kompilieren:
gcc -g main.cpp -o Main
Ich bekomme viele undefinierte Referenzen:
Und dies ist ein Screenshot des Programms, das in Codeblöcken ausgeführt wird:
command-line
gcc
c++
compiler
code-blocks
Mark J
quelle
quelle
Sie sollten
g++
für C ++ Programme immer verwenden!Das ist, weil:
gcc
ist GNU C Compilerg++
ist der GNU C ++ CompilerSie sind also unterschiedliche Compiler und unterschiedliche Pakete. Die Hauptunterschiede:
gcc
Kompiliert:*.c
/*.cpp
files als C bzw. C ++.g++
kompiliert:*.c
/*.cpp
files, aber alle werden als C ++ Dateien behandelt.g++
zum Verknüpfen der Objektdateien verwenden, wird automatisch eine Verknüpfung mit den Standard-C ++ - Bibliotheken hergestellt (gcc
dies ist nicht der Fall).gcc
Das Kompilieren von C-Dateien hat weniger vordefinierte Makros.gcc
compiling*.cpp
undg++
compiling*.c
/*.cpp
files haben ein paar zusätzliche Makros.Quelle: Was ist der Unterschied zwischen g ++ und gcc?
quelle
Ich habe das Problem herausgefunden. Ich habe die spezifische Lösung nicht gefunden, aber ich habe eine Lösung gefunden. Anscheinend werden die Klassen nicht verbunden. Also habe ich alle Klassen in die Hauptdatei eingefügt und es hat perfekt funktioniert!
quelle