次のコマンドは、2011年11月のGCC4.6.1を使用して正常に機能します。
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
したがって、LIBとDLLの両方に対するリンクは機能します。
警告が表示される場合があります(Gaffiのコメントを参照)。これは、リンカが指定されていなくてもファジーリンクを実行するためです。通常は、リンクに失敗します。しかし、それは素晴らしいことであり、それをあなたのために機能させると同時に、あなたがそれらを要求することなく起こっていることについてあなたに警告します。警告を抑制する方法は、ファジーリンクを明示的にすることです:
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
これは、リンカーのCygwin / RedHat/MinGW拡張機能です。 ドキュメントはこちら :
--enable-stdcall-fixup
--disable-stdcall-fixup