Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de libmysqlclient dans une application multithread

Mettre à jour :

Il semble que vous deviez appeler mysql_library_init() avant mysql_init() :

Concernant votre question initiale, libmysqlclient_r.so est en fait un lien symbolique vers libmysql.so . Vous pouvez modifier libmysql/CMakeLists.txt pour produire une bibliothèque statique (libmysql.a ) à la place en supprimant le SHARED mot-clé de la ligne suivante :

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

Cependant, je recommanderais (1) d'essayer d'exécuter le même code sans utiliser de threads et de voir si le problème persiste, (2) de construire et d'utiliser la version de débogage des bibliothèques :

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

De cette façon, vous pourrez étudier le problème plus en détail.