sql >> Databáze >  >> RDS >> Mysql

Nedefinovaný odkaz na knihovny MySQL pomocí g++

Následující příkazy mi fungují dobře pomocí GCC 4.6.1 z listopadu 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

Takže jak propojení s LIB, tak s DLL fungují.

Můžete dostat varování (viz Gaffiho komentář). Je to proto, že linker dělá fuzzy linkování za vás, aniž byste to měli zadané; normálně by se propojení nepodařilo. Je to ale milé a dělat to, aby to fungovalo pro vás, a zároveň vás varovat před věcmi, které se dějí, aniž byste o to požádali. Způsob, jak potlačit varování, je učinit fuzzy linkování explicitním:

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

Toto je rozšíření Cygwin/RedHat/MinGW k linkeru; dokumenty jsou zde :

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


  1. (1/1) MethodNotAllowedHttpException

  2. Odpovídající nejbližší zeměpisné délce/šířce

  3. Optimalizace SQL dotazu, aby se zabránilo dočasné tabulce

  4. MySQL ORDER BY rand(), název ASC