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