I seguenti comandi funzionano bene per me utilizzando un GCC 4.6.1 di novembre 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
Quindi entrambi i collegamenti con la LIB e la DLL funzionano.
Potresti ricevere un avviso (vedi il commento di Gaffi). Questo perché il linker esegue il collegamento fuzzy per te senza che tu lo abbia specificato; normalmente, non sarebbe riuscito a collegarsi. È essere carino, però, e farlo funzionare per te, allo stesso tempo avvisarti di cose che accadono senza che tu le abbia richieste. Il modo per eliminare l'avviso è rendere esplicito il collegamento fuzzy:
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
Questa è un'estensione Cygwin/RedHat/MinGW al linker; i documenti sono qui :
--enable-stdcall-fixup
--disable-stdcall-fixup