2 Stimmen

SOCI Undefinierter Referenzfehler während der Kompilierung

Ich versuche, soci zum Laufen zu bringen, und stütze mich bei meinem Code auf die Dokumentation des Unternehmens ici . Ich erhalte eine Fehlermeldung, die ich nicht entziffern kann.

Mein Code:

// relevant imports
using namespace soci;
using namespace std;
int main(int argc, char** argv) {
    string dbName = "mysql";
    string options = "dbname=db user=root password=abc";
    try {
        session sql(dbName, options); // this is line 22
    } catch (exception e) {
        printf("%s", e.what());
    }
    printf("working");
    return 0;
}

Der Fehler:

build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/kevin/Dropbox/bamboo/main.cpp:22: undefined reference to
`soci::session::session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/kevin/Dropbox/bamboo/main.cpp:22: undefined reference to `soci::session::~session()'

0voto

janm Punkte 17342

Sie müssen eine Verknüpfung mit der soci-Bibliothek und dem entsprechenden Backend herstellen. Fügen Sie "-lsoci" zu Ihrer Linker-Befehlszeile hinzu.

Aktualisierung:

Aufgrund der Kommentare müssen Sie hinzufügen:

-L/usr/local/lib -lsoci_core -lsoci_mysql

in die Befehlszeile Ihres Linkers einfügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X