Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di libmysqlclient in applicazioni multi-thread

Aggiorna :

Sembra che tu debba chiamare mysql_library_init() prima di mysql_init() :

Per quanto riguarda la tua domanda originale, libmysqlclient_r.so è in realtà un collegamento simbolico a libmysql.so . Puoi modificare libmysql/CMakeLists.txt per produrre una libreria statica (libmysql.a ) rimuovendo invece il SHARED parola chiave dalla riga seguente:

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

Tuttavia, consiglierei (1) di provare a eseguire lo stesso codice senza utilizzare i thread e vedere se il problema persiste, (2) creare e utilizzare la versione di debug delle librerie:

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

In questo modo potresti esaminare il problema in modo più dettagliato.