我想知道如何防止Cygwin下的gcc自動將.exe擴展名添加到已編譯的文件中,因爲我只是讓自己對「缺少的文件」產生了很大的困惑。在上下文中,我正在爲大學開發一個C項目,我通常在運行Ubuntu的實驗室(與Windows雙啓動)工作,但要在家工作,我更喜歡使用我的Windows機器,請參閱Cygwin。如果我只是刪除了擴展,它仍然可以在任何一個系統上正常工作,但是當我在Cygwin下編譯它時,必須更改命令以包含擴展,這是相當令人沮喪的。如何在Cygwin中添加「.exe」到已編譯的可執行文件來阻止gcc?
我查了一下Cygwin的FAQ,發現它可能是一個與.bashrc或.bash_profile(see here)中的環境變量有關的問題,但我不是命令行忍者,也不是很熟悉編輯配置文件...我發現了兩個相關的問題還有,顯示相同的行爲,但什麼都沒有做,試圖改變它:
Compiling with gcc (cygwin on windows)
Executable file generated using gcc under cygwin
任何想法?
編輯:它實際上是在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中完成的工作都將完成。謝謝大家。
你用來調用gcc的命令行是什麼? – 2013-05-13 13:39:23
這並不回答你的問題,但你可能想嘗試在像VirtualBox這樣的虛擬機上運行Ubuntu。那麼你不必擔心這樣的問題,你的家庭環境可以完全像你在學校的環境。 – 2013-05-13 15:42:37