Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von libmysqlclient in einer Multithread-Anwendung

Aktualisieren :

Es scheint, dass Sie mysql_library_init() vor mysql_init() :

In Bezug auf Ihre ursprüngliche Frage, libmysqlclient_r.so ist eigentlich ein symbolischer Link zu libmysql.so . Sie können libmysql/CMakeLists.txt ändern um eine statische Bibliothek zu erzeugen (libmysql.a ) stattdessen durch Entfernen des SHARED Schlüsselwort aus der folgenden Zeile:

ADD_LIBRARY(libmysql          SHARED ${CLIENT_SOURCES} libmysql.def)

Ich würde jedoch empfehlen, (1) zu versuchen, denselben Code ohne Verwendung von Threads auszuführen und zu sehen, ob das Problem weiterhin besteht, (2) die Debug-Version der Bibliotheken zu erstellen und zu verwenden:

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug
make

Auf diese Weise können Sie das Problem genauer untersuchen.