WindowsでC言語のプログラムを作成する時によく用いられる環境の1つとして、Cygwinが挙げられます。CygwinはWindows上でUnixを擬似的に再現した環境のことで、完全な互換性は無いものの、多くの場合は問題なく利用することができます。
しかし、そんなCygwinでもデフォルトではいくつか問題があります。その1つとして、Cygwin上でコンパイルしたプログラムはCygwin1.dllというライブラリがないと動作しないという点です。これはつまり、Cygwinでコンパイルしたプログラムは、Cygwinが入っている環境でしか実行できないというわけです。これでは、Cygwinが入っていない環境で実行したい場合などは非常に困ってしまいます。
そのような対応するために、Cygwinのgccでは「-mno-cygwin」というオプションが提供されています。これを利用することで、Cygwin1.dllがない環境であってもバイナリを実行できるようになります。
このオプションを付加することによって起こりえる問題もあるのですが、それについてはここでは割愛します。下記のウェブページでは、より詳細に紹介されています。
[web] "-mno-cygwin"- Cygwin を使用した MinGW 実行形式のビルド - Studio Sixnine.
[web] Cygwin - Wikipedia
コメントする