Undefined reference to 'dlsym'

Ich habe gesehen, dass viele ähnliche Beiträge, aber versucht jeden trick im Buch, und bin immer noch zu kämpfen. Hat alles gut funktioniert, aber nach dem installieren/entfernen wireshark mit einigen Komponenten/disselectors mal alles Durcheinander. Ich erinnere mich nicht genau, welche Bibliotheken/Pakete deinstalliert habe, aber wahrscheinlich eine Menge mehr, als ich bemerkt.

Ist, wenn ich eine einfache main.cpp Datei wie diese:

#include <SQLAPI.h>
int main()
{
  SAConnection con;
  return 0;
}

und versuchen

g++ main.cpp -lsqlapi -ldl

er gibt mir folgende Fehlermeldungen:

/usr/local/lib/libsqlapi.so: undefined reference to `dlsym'
/usr/local/lib/libsqlapi.so: undefined reference to `dlerror'
/usr/local/lib/libsqlapi.so: undefined reference to `dlopen'
/usr/local/lib/libsqlapi.so: undefined reference to `dlclose'
collect2: error: ld returned 1 exit status

Ich habe versucht, ldl-Cholesterin vor -lsqlapi wie einige haben vorgeschlagen, dass die Reihenfolge wichtig ist. Wenn ich gcc statt g++ den Fehler:

/usr/bin/ld: /tmp/ccwBI4tj.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Ich bin in der Lage zu kompilieren und führen Sie die Datei, wenn SAConnection entfernt.

Ich glaube nicht, dass es irgendetwas damit zu tun hat SQLAPI, weil ich ähnliche Probleme auftreten mit libboost. Ich habe nicht ein kleines code-Beispiel, aber wenn ich zum Beispiel ein Projekt, das erfolgreich kompilierte Letzte Woche, bekomme ich die Fehlermeldung:

/usr/bin/ld: debug/components/helloworld/HelloWorld.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.53.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Diese Projekt ein Makefile verwenden, unverändert geblieben ist, so muss es sein etwas auf meinem system nicht richtig. Ich habe versucht neu zu installieren, build-essential.

Benutze Ubuntu 64 bit 13.10 mit g++ version 4.8.1.

InformationsquelleAutor der Frage evinje | 2013-12-04

Schreibe einen Kommentar