/ / Sqlite3-Bibliothek mit Thread-Fehler, obwohl die Option -lpthread verwendet wird - c ++, sqlite3, ide, Codeblocks

Sqlite3-Bibliothek gibt Threadfehler, obwohl die Verwendung der Option -lpthread - C ++, SQLite3, IDE, Codeblocks

Ich verwende Code :: Blocks IDE für mein Projekt.

Bisher habe ich die sqlite3-Verschmelzungsdateien heruntergeladen und mit installiert make install und verknüpfte die Bibliothek libsqlite3.a mit meinem Projekt mit Projekt->Build-Optionen->Linker-Einstellungen und fügte die Datei libslite3.a hinzu.

Wenn ich jetzt versuche, mein Projekt zu erstellen, bekomme ich einige Fehler wie undefined reference to pthread_mutex_trylock oder undefined reference to pthread_create.

Ich habe es aufgenommen pthread, thread, mutex Kopfzeilen in meinem Hauptbereich, fügte ich die Option hinzu -lpthread und pthread alternativ im Projekt->Build-Optionen->andere Copiler-Optionen und trotzdem bekomme ich den gleichen fehler.

Antworten:

1 für die Antwort № 1

-l<library> ist Linkeroption, keine Compileroption, also in Code :: Blocks es geht in die Andere Linker-Optionen

Entfernen -lpthread von den Compiler-Optionen und fügen Sie es dem Linker hinzu Optionen werden wahrscheinlich ausreichen.

Allerdings ist der richtige, tragbare Weg zu aktivieren pthreads Multithreading in GCC ist um die Option hinzuzufügen -pthread (nicht -lpthread) zu beide die Compiler-Optionen: -

Projekt->Erstellen Sie Optionen->Compiler-Einstellungen -> Andere Compiler-Optionen

und die Linker-Optionen:

Projekt->Erstellen Sie Optionen->Linker-Einstellungen -> Andere Linker-Optionen

Diese Option weist den Compiler an, die richtigen Dinge zu tun generieren pthreads kompatibler Code und weist den Linker an, die richtigen Dinge zu tun verknüpfen Sie es mit der POSIX-Threads-Bibliothek der Hostplattform.

Benutzen pthreads in deinem Programm, #include <pthreads.h>