質問: 実行ファイルが作成環境以外のpcで実行が出来ません。 実行ファイルが作成環境以外のpcで実行が出来ません。 現在windowsプログラミングでアプリケーションを作成しております。 しかし作成した実行ファイルを他のpcで実行しようとすると [cygwin1.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールしなおすとこの問題は解決される場合があります。] とのエラーメッセージが表示され、実行することができません。 恐らくcygwin関係のエラーだとは思うのですが、cygwinが入っていない環境でも使用できるようにすることは出来ませんでしょうか? 必要そうな情報を下に書いておきます 作成環境:vista cygwin コンパイル:gcc -mwindows a.cpp a.o 実行環境:x cygwin無し
回答: windowに皮を被してunix系のプログラムをほぼそのまま動かそうというのがcygwinです。cygwin1.dllはその皮です。 ですので、cygwin1.dllなしには動きません。 -mno-cygwinオプションでcygwin1.dllに依存しない実行ファイルができますが、たしか、最新のgccでは削られていたと思います。 (先日やろうとして、mingwを使え、ってメッセージが出ました。その後の確認はしていません) 簡単なものではcygwin1.dllと一緒にコピーするだけで動きますが、複雑なものになると、他のdllや/usr/share以下のファイルを参照するなどで、cygwin 環境そのものが必要になります。 cygwinに依存しない実行ファイルを作るなら、他のコンパイラを使うのがいいです。 あと気になるのが >コンパイル:gcc -mwindows a.cpp a.o c++コンパイラはg++ですが? a.cppをコンパイルしたオブジェクトがa.oですが、それとa.oをリンクするって何? >実行環境:x cygwin無し cygwin無しで動くxサーバーが入っているんですか?