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

Référence indéfinie aux bibliothèques MySQL utilisant g++

Les commandes suivantes fonctionnent bien pour moi en utilisant un GCC 4.6.1 de novembre 2011 :

g++ my.cpp -I D:\Opt\MySQL5.5\include ^
  D:\Opt\MySQL5.5\lib\libmysql.dll -o myWithDll.exe

g++ my.cpp -I D:\Opt\MySQL5.5\include ^
  -L D:\Opt\MySQL5.5\lib -lmysql -o myWithLib.exe

Ainsi, la liaison avec la LIB et la DLL fonctionne.

Vous pouvez recevoir un avertissement (voir le commentaire de Gaffi). C'est parce que l'éditeur de liens effectue une liaison floue pour vous sans que vous l'ayez spécifié; normalement, il n'aurait pas réussi à se lier. C'est être gentil, cependant, et le faire fonctionner pour vous, en même temps vous avertir des choses qui se passent sans que vous les ayez demandées. La façon de supprimer l'avertissement est de rendre explicite le lien approximatif :

g++ -Wl,--enable-stdcall-fixup my.cpp -I D:\Opt\MySQL5.5\include ^
  D:\Opt\MySQL5.5\lib\libmysql.dll -o myWithDll.exe

g++ -Wl,--enable-stdcall-fixup my.cpp -I D:\Opt\MySQL5.5\include ^
  -L D:\Opt\MySQL5.5\lib -lmysql -o myWithLib.exe

Il s'agit d'une extension Cygwin/RedHat/MinGW de l'éditeur de liens ; la documentation est ici :

--enable-stdcall-fixup
--disable-stdcall-fixup