Bonjour,

J'ai intégré à mon programme la bibliothèque soci (transaction sql) qui se compose d'un code libosci.a et des différents backends permettant la connexion aux diverses base de données souhaitée.
J'ai réalisé mon programme en compilation static, cependant impossible d'inclure le backend mysql sans avoir d'erreur de linkage fessant référence à la bibliothèque mysqlclient.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
libs/libsoci_mysql.a(session.o): In function `soci::mysql_session_backend::mysql_session_backend(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
session.cpp:(.text+0xb7a): undefined reference to `mysql_init'
[...]
En voyant cette erreur je comprends que c'est la bibliothèque libsoci_mysql.a qui ne parvient pas à trouver la bibliothèque mysqlclient qui est cependant inclue dans mon makefile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
INCLUDE_MYSQL = -Isoci-3.1.0/backends/mysql -I/usr/include/mysql/
LIB_MYSQL = -L/usr/lib/mysql -lz /usr/lib/libmysqlclient.a /usr/lib/libmysqlclient_r.a libs/libsoci_mysql.a
Est-il possible que la bibliothèque backend_mysql qui est static face une référence vers la bibliothèque mysqlclient en dynamique ?

J'ai souhaité modifier le makefile pour utiliser l'option -static cependant la variable qui inclue les bibliothèque n'est pas utilisé dans la compilation

Je suppose que je dois mal m'y prendre mais je ne vois pas du tout ou ...
Si quelqu'un peut me donner un coup de main, merci d'avance