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>