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