Undefinierter Verweis auf 'dlsym'

Ich habe viele ähnliche Posts gesehen, aber alle Tricks ausprobiert und habe immer noch Probleme. Alles hat gut funktioniert, aber nach dem Installieren / Entfernen von Wireshark mit einigen Komponenten / Disselektoren hat sich alles verzogen. Ich kann mich nicht genau erinnern, welche Bibliotheken / Pakete deinstalliert wurden, aber wahrscheinlich viel mehr, als ich bemerkt habe.

Wenn ich eine einfache main.cpp-Datei wie diese erstelle:

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

und versuche

g ++ main.cpp -lsqlapi -ldl

Es gibt mir die folgenden 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 vor -lsqlapi zu setzen, da einige vorgeschlagen haben, dass die Reihenfolge wichtig ist. Wenn ich gcc anstelle von g ++ benutze, ist der 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 kann die Datei kompilieren und ausführen, wenn SAConnection entfernt wird.

Ich denke, es hat nichts mit SQLAPI zu tun, da ich ähnliche Probleme mit libboost habe. Ich habe kein kleines Codebeispiel, aber wenn ich ein Projekt kompiliere, das letzte Woche erfolgreich kompiliert wurde, erhalte 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

In diesem Projekt wird ein Makefile verwendet, das nicht geändert wurde. Es muss sich also um etwas auf meinem System handeln, das nicht korrekt ist. Ich habe versucht, Build-Essential neu zu installieren.

Verwenden von Ubuntu 64 Bit 13.10 mit g ++ Version 4.8.1.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage