Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando libmysqlclient em aplicativo multi-thread


Atualizar :

Parece que você precisa chamar mysql_library_init() antes de mysql_init() :

Em relação à sua pergunta original, libmysqlclient_r.so é na verdade um link simbólico para libmysql.so . Você pode alterar libmysql/CMakeLists.txt para produzir uma biblioteca estática (libmysql.a ) removendo o SHARED palavra-chave da seguinte linha:
ADD_LIBRARY(libmysql          SHARED ${CLIENT_SOURCES} libmysql.def)

No entanto, eu recomendaria (1) tentar executar o mesmo código sem usar threads e ver se o problema persiste, (2) construir e usar a versão de depuração das bibliotecas:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug
make

Dessa forma, você pode investigar o problema com mais detalhes.