sql >> Base de Datos >  >> RDS >> Mysql

Referencia indefinida a las bibliotecas MySQL usando g ++

Los siguientes comandos me funcionan bien con un GCC 4.6.1 de noviembre de 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

Por lo tanto, tanto la vinculación con LIB como con DLL funcionan.

Es posible que reciba una advertencia (consulte el comentario de Gaffi). Esto se debe a que el enlazador realiza enlaces inexactos por usted sin que usted lo haya especificado; normalmente, no se habría podido vincular. Sin embargo, es ser amable y hacer que funcione para usted, al mismo tiempo que le advierte sobre cosas que suceden sin que usted las haya pedido. La forma de suprimir la advertencia es hacer explícitos los enlaces difusos:

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

Esta es una extensión Cygwin/RedHat/MinGW para el enlazador; los documentos están aquí :

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