2010-03-26 24 views
4

我一直在使用M-X編譯編譯程序中說開始,C.什麼是M-X編譯「荷蘭國際集團

什麼是運行可執行文件如最有效的方式後,運行在Emacs程序的最有效的方法a.out的。目前我正在使用M-! ./a.out。基本上,遵循什麼是最好的代碼編譯運行過程?

幾乎所有的教程都提到編譯是如何完成的,但是我沒有看到一個解決這個問題的教程?

感謝, 塞繆爾

回答

3

我往往只是在構建的末尾添加運行命令:

M-x compile RET gmake && ./a.out 

&&將告訴shell只會叫a.out當編譯成功。

雖然我經常從現有的殼緩衝器運行的程序(M-X殼),或從我管理與包很像screen許多殼之一。

+0

我做了類似的事情。 – 2010-03-26 18:26:15

+0

如果程序需要用戶輸入,我該怎麼辦?編譯緩衝區是隻讀的。我不想打開ansi-term或其他東西。 – 2010-03-26 18:33:46

+0

@Samuel如果有用戶輸入,那麼我絕對使用* shell *緩衝區。 – 2010-03-26 18:47:40

3

我使用擴展smart-compile+,它允許您指定 相當方便的規則,具體取決於您正在編輯的文件/緩衝區的名稱。 例如,在我的.emacs我指定運行在一個項目歐拉文件 智能編譯時以下規則:

(add-to-list 'smart-compile-alist 
     '("euler.*\\.[Cc]+[Pp]*$" . "g++ -O2 -Wall -pedantic -Werror -Wreturn-type %f -lm -lgmpxx -lgmp -o ../bin/%n && time ../bin/%n") 
     ) 

首先,你指定的規則文件名模式,那麼路徑,它應該是執行,然後編譯命令。 在上面的情況下,我添加了& &時間../bin/%n在程序成功編譯後直接運行程序。

+1

我真的必須學習所有那些g ++選項的含義。 – 2010-03-26 21:43:40

+1

哦,聰明。 – 2010-04-16 07:04:35

0

我的第一選擇是進行互動開發;代碼,將文件加載到REPL中,解決錯誤(使用C-x`,就像使用M-x編譯一樣),然後使用REPL中的代碼進行處理。

如果這不是一個選項,我使用eshell作爲通用的REPL。編譯,切換到eshell,運行,測試,重複。

0

規則添加到您的makefile編譯和運行你的程序,所以M-X編譯編譯和運行,測試的valgrind測試...無論

相關問題