sql >> Database teknologi >  >> RDS >> Mysql

Udefineret reference til MySQL-biblioteker ved hjælp af g++

Følgende kommandoer fungerer fint for mig med en GCC 4.6.1 fra 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 at linke mod LIB'en og DLL'en virker.

Du får muligvis en advarsel (se Gaffis kommentar). Dette skyldes, at linkeren laver fuzzy links for dig, uden at du har det specificeret; normalt ville det ikke have kunnet linke. Det er dog at være sød og få det til at fungere for dig, samtidig med at det advarer dig om ting, der sker, uden at du har bedt om det. Måden at undertrykke advarslen på er at gøre fuzzy linking eksplicit:

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

Dette er en Cygwin/RedHat/MinGW-udvidelse til linkeren; dokumenterne er her :

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


  1. Hvordan kan jeg kalde en SQL Stored Procedure ved hjælp af EntityFramework 7 og Asp.Net 5

  2. mysql join table forespørgsel 2 værdier

  3. Mysql vælg flere rækker baseret på en række relateret datointerval

  4. mysql-connector-java-8.0.12:får fejl for 'Malay Peninsula Standard Time' server tidszone