在M-x编译之后,在Emacs中运行程序的最有效方法是什么

时间:2010-03-26 18:07:57

标签: emacs

我已经开始使用M-x编译来编译程序,例如C。

运行可执行文件的最有效方法是什么? a.out的。目前我正在使用M-! ./a.out。基本上,最好的代码编译运行程序是什么?

几乎所有的教程都提到了编译是如何完成的,但我还没有看到解决这个问题的教程?

谢谢, 塞缪尔

4 个答案:

答案 0 :(得分:3)

我经常在构建结束时附加run命令:

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

&&将告诉shell仅在编译成功时调用a.out

虽然我经常从现有的shell缓冲区( M-x shell )运行程序,或者从我使用包管理的许多shell中运行一个程序,非常像screen

答案 1 :(得分:3)

我使用扩展程序smart-compile+,它允许您指定 非常方便的规则取决于您正在编辑的文件/缓冲区的名称。 例如,在我的.emacs中,我为运行时指定了以下规则 在项目euler文件中进行智能编译:

(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在成功编译后直接运行程序。

答案 2 :(得分:0)

我的第一选择是互动发展;代码,将文件加载到REPL中,解决错误(使用C-x`,就像使用M-x编译一样),然后使用REPL中的代码进行播放。

如果那不是一个选项,我使用eshell作为通用REPL。编译,切换到eshell,运行,测试,重复。

答案 3 :(得分:0)

在makefile中添加一条规则来编译并运行你的程序,所以 Mx compile 将编译并运行,测试,valgrind-test ......无论