Kompilieren: //lib/x86_64-linux-gnu/libm.so.6: Fehler beim hinzufügen von Symbolen: DSO fehlt
Ich habe Probleme beim kompilieren von code gedacht für 32bit unix-system auf meinem 64bit Ubuntu Linux. Hat jemand irgendwelche Ideen was das problem sein kann?
gcc main.o test.o render.o transform.o model.o vector.o color.o -o the_thing -lSDL
/usr/bin/ld: transform.o: undefined reference to symbol 'cos@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
- Die Fehlermeldung ist, dass Sie das hinzufügen
/lib/x86_64-linux-gnu/libm.so.6
(oder noch besser, die kurze version-lm
) an die Befehlszeile...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie
libm
wie gut, wenn man es mit code mithilfe von mathematischen Funktionen.Vom diese Antwort:
Ein plus
Sah ich in Ihre Compiler-Zeile, die Sie verwenden -lSDL. SDL arbeitet mit C und C++, so dass, wenn Sie mit reinen C sollten Sie die Standard-Mathematik C-header, der:
#include <math.h>
Ich denke, dass es so etwas wie dieses:
#include <cmath>
Wenn Sie arbeiten mit C++ sollte man nicht kompilieren (mit dem C-compiler, verwenden Sie
g++
statt.Kompilieren Sie Ihren code mithilfe
-lm
argument.gcc file.c -lm