sql >> Databasteknik >  >> RDS >> Mysql

Odefinierad referens till MySQL-bibliotek som använder g++

Följande kommandon fungerar bra för mig med en GCC 4.6.1 från november 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

Så både länkning mot LIB och DLL fungerar.

Du kan få en varning (se Gaffis kommentar). Detta beror på att länken gör suddig länkning åt dig utan att du har specificerat det; normalt skulle den inte ha kunnat länka. Det är dock att vara trevlig och få det att fungera för dig, samtidigt som du varnar dig för saker som händer utan att du har bett om dem. Sättet att undertrycka varningen är att göra suddig länkning explicit:

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

Detta är en Cygwin/RedHat/MinGW-förlängning av länken; dokumenten finns här :

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


  1. Primära nycklar och index i Hive-frågespråk är möjligt eller inte?

  2. Representerar IPv4/IPv6-adresser i Oracle

  3. bilden hämtas inte från databasen med sökväg

  4. Hur kontrollerar jag om en MySQL-fråga med det äldre API:et lyckades?