Cygwinでcygwin1.dllフリーなWindows実行ファイルを作る (MinGW-w64)

Cygwingcc ver.3.xでは-mno-cygwinオプションを付ければcygwin1.dllのリンクされない実行ファイルを作る事ができるが、最近のgcc (ver.4.x系列?)ではこのオプションは使えない。

$ gcc -mno-cygwin sample.c
gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.
$ gcc --version
gcc (GCC) 4.5.3
(以下略)

代わりにMinGW-w64gccを使えば良い。*1 *2
Cygwin Setupで以下のパッケージをインストール。

  • 64ビット環境なら
  • 32ビット環境なら

これでインストールされたgccを使えばOK。-mno-cygwinオプションは不要。

$ x86_64-w64-mingw32-gcc sample.c

ちなみにインストールしたパッケージに含まれる実行ファイルを調べるには以下のコマンドを使うといい。

$ cygcheck -l mingw64-x86_64-gcc-core | grep exe

参考

*1:名前にw64とあるが32ビット環境向けのも提供している

*2:MinGW-w64はMinGWからスピンオフしたプロジェクト