sql >> Database >  >> RDS >> Mysql

Ongedefinieerde verwijzing naar MySQL-bibliotheken met g++

De volgende commando's werken prima voor mij met een GCC 4.6.1 van 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

Dus zowel het linken tegen de LIB als de DLL werken.

Mogelijk krijgt u een waarschuwing (zie de opmerking van Gaffi). Dit komt omdat de linker fuzzy linking voor je doet zonder dat je het specificeert; normaal gesproken zou het niet zijn gelukt om te linken. Het is echter aardig zijn en het voor je laten werken, terwijl je tegelijkertijd wordt gewaarschuwd voor dingen die gebeuren zonder dat je erom hebt gevraagd. De manier om de waarschuwing te onderdrukken is om fuzzy linking expliciet te maken:

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

Dit is een Cygwin/RedHat/MinGW-extensie van de linker; de documenten zijn hier :

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


  1. Hoe u consequent een Microsoft Access MVP Award kunt verdienen

  2. Wat is het verschil tussen het 'yy'- en 'rr'-datummasker van orakel?

  3. Fout 'Je hebt al een bruikbare verbinding' in Visual Studio 2015 bij het toevoegen van gegevensbron

  4. Hoe Room Persistence Library te gebruiken met een vooraf ingevulde database?