在emacs中编译c问题(ubuntu)

时间:2011-01-07 06:32:19

标签: emacs emacs23

我写了一个非常简单的程序,如:(抱歉,我以正确的方式输入了代码,但是显示屏是有线的。我怎么能修复它?)

#include <stdio.h>
int main( void )
{
   int i;

   for ( i = 0; i <= 10; i++ ) {
      printf( "%d hello!\n", i);
   }
   return 0;
}

通常,我使用命令

在终端编译c程序

cc -o xxx xxx.c

所以在Emacs中,当我键入M-x compile时,我将make -k更改为cc -o。 但是我得到了像

这样的错误

cc:缺少'-o'的参数

有什么问题?

如果我使用make,那么我仍然会收到错误

未指定目标且未找到任何makefile。

最后,如果修复了上述问题,我该如何定义编译的自定义热键? 我已经知道如何做像

这样的事情了

global-set-key [f8]'goto-line

但我不知道只为c-mode设置一个动作的热键。

4 个答案:

答案 0 :(得分:2)

您需要提供整个cc行。

“make -k”假设您有一个Makefile提供制作命令。

所以,用

替换make -k
cc -o xxx xxx.c

至于emacs绑定:

(global-set-key [f6] 'compile)

答案 1 :(得分:1)

构建这样的简单文件程序的一个好方法是在文件顶部添加compile-command变量的值,如下所示:

// -*- compile-command:"g++ helloworld.cpp -g -o helloworld.exe"; -*-

我的博文"Writing quick C++ programs in emacs without a makefile"

中有更详细的信息

答案 2 :(得分:0)

尝试将make -k更改为xxx。

答案 3 :(得分:0)

我认为这样做的好方法就是记录变量compile-commandcompile使用的那个,通常包含make -k)。

C-h v compile-command查看变量的文档。它包含一些您可以根据自己的喜好进行更改的代码。