Cygwin の下で gcc がコンパイル済みファイルに .exe 拡張子を自動的に追加するのを防ぐ方法を知りたいのですが、「欠落しているファイル」で多くの混乱を引き起こしたからです。コンテキストとして、私は大学の C プロジェクトに取り組んでおり、通常は Ubuntu (Windows とのデュアルブート) を実行するラボで働いていますが、自宅で作業するには、Windows マシン、つまり Cygwin を使用することを好みます。拡張機能を削除するだけでも、どちらのシステムでも問題なく動作しますが、Cygwin でコンパイルしたばかりのときに拡張機能を含めるようにコマンドを変更する必要があるのはかなりイライラします。
Cygwin の FAQ を調べたところ、おそらく .bashrc または .bash_profile の環境変数に関連する問題であることがわかりました (こちらを参照)。同じ動作を示す 2 つの関連する質問も見つけましたが、それを変更しようとすることとは関係ありません。
gcc でコンパイル (Windows では cygwin)
cygwin で gcc を使用して生成された実行可能ファイル
何か案は?
これは実際にはCプロジェクトのMPI用であるため、mpiccを呼び出すMakefileがありますが、gccでも試してみたところ、両方が同じことを行ったため、問題にはあまり関係ありません。この質問の目的のために、私が得るコマンドと出力は次のとおりです。
$ gcc -o hello hello.c
$ ls
hello.c hello.exe
$./hello
Hello, world!
$./hello.exe
Hello, world!
拡張機能を使用しても使用しなくても、シェルでは同じことを実行できますが、mpirun では実行できないため、この動作を変更したいと思います。
最終的に、Windows は自分にとってのプログラミング環境ではないと判断しました。これからは、Linux でできる作業はすべてそうなります。