Następujące polecenia działają dobrze dla mnie używając GCC 4.6.1 z listopada 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 więc zarówno linkowanie do LIB, jak i DLL działa.
Możesz otrzymać ostrzeżenie (patrz komentarz Gaffiego). Dzieje się tak dlatego, że linker wykonuje dla ciebie linkowanie rozmyte bez podania go; normalnie nie udałoby się połączyć. To jednak bycie miłym i sprawienie, żeby to działało dla Ciebie, jednocześnie ostrzegając Cię, że coś się dzieje bez Twojej prośby. Sposobem na pominięcie ostrzeżenia jest jawne użycie linków rozmytych:
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
Jest to rozszerzenie linkera Cygwin/RedHat/MinGW; dokumentacja jest tutaj :
--enable-stdcall-fixup
--disable-stdcall-fixup