glfw3 Fehler: DSO Fehlt von der Kommandozeile aus
Ich hatte vor kurzem eine Neuinstallation von Linux Mint auf meinem PC. Ich installierte alle meine Bibliotheken, wie GLFW und stieß auf einen Fehler habe ich noch nie gesehen. Leider ist mein google-fu-Fähigkeiten scheinen nicht bis zu par für diesen Fehler habe ich nicht finden können, die alle Updates, die für mich arbeiten. Nebenbei bemerkt: diese Programme werden kompiliert problemlos auf meiner alten installation, und auch das kompilieren einwandfrei auf meinem laptop, der läuft auch Linux Mint 17.2.
Dies ist die compile-Anweisung, die ich mit zu kompilieren:
g++ -std=c++11 main.cpp -o out -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
Dies ist, was das terminal spuckt bei mir:
/usr/bin/ld: //usr/local/lib/libglfw3.a(glx_context.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libdl.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Also, wenn jemand mir sagen kann, warum ich immer bin das/oder wie man es beheben, dass wäre absolut erstaunlich! Vielen Dank im Voraus für jede Hilfe.
BEARBEITEN:
Ich habe neu installiert Minze zweimal, um zu versuchen und dieses Problem zu beheben. Es dreht sich jedes mal.
EDIT 2:
Ich habe schon hantieren und hab noch zu finden, ein Problem.
InformationsquelleAutor DavidBittner | 2015-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sieht aus wie das fehlende symbol ist aus
libdl
.Als zusätzlichen bonus, werde ich Ihnen eine Makefile. Denken Sie daran Einrücken mit tabs, NICHT mit Leerzeichen, sonst wird das Makefile funktioniert nicht.
Jedoch, es wäre viel einfacher, wenn Sie verwendet werden
pkg-config
. Ich weiß nicht, aus der Spitze von meinem Kopf den richtigen Befehl (ich bin nicht auf Linux nun so kann ich nicht überprüfen), aber es wird so Aussehen:Diese Weise werden Sie nicht müssen sogar wissen, dass Sie brauchen
-ldl
, weilpkg-config
wird es für Sie herausfinden. Dies ist der standard-Weg, Dinge zu tun.Versuchen
pkg-config --libs glfw3
für sich selbst um die Ausgabe zu sehen. Wenn es nicht installiert ist, führen Siesudo apt-get install pkg-config
.InformationsquelleAutor Dietrich Epp
Ich möchte nur vereinfachen, Dietrich Epp-Antwort für den weniger erfahrenen Programmierer wie mich:
Um dieses problem zu lösen, link die libdl Bibliothek durch welche Mittel auch immer erforderlich, die von Ihrem compiler-Methode. Wenn Sie mit der Befehlszeile (gcc): - add "-ldl", um die Verknüpfung Befehle, so dass die ursprüngliche Verknüpfung Befehl aus DavidBittner oben wird:
Beachten Sie die "-ldl" am Ende Hinzugefügt.
Wenn Sie mit Cmake, setzen Sie ein "-ldl", um die Liste der zusätzlichen Bibliotheken.
InformationsquelleAutor RStiltskin