在Emacs中更改默认编译器?

haz*_*ziz 5 c emacs gcc makefile clang

M-x compile在Emacs中使用来编译我的C代码,然后启动make -k并允许我编译代码.我希望在安装它之后使用Clang(或者可以想象为GCC 4.8)作为默认编译器.我有cc别名clang -Wall -Werror -std=c99 -ggdb -O0,当Clang从Emacs外部的命令行调用时,M-x compile从Emacs内部调用仍然似乎cc是GCC版本4.7的别名,这是我已经安装的.我希望利用Clang(和GCC 4.8)提供的更丰富,更易理解的错误和警告信息,但不希望为我写的每个简短的学生级程序创建单独的makefile,因为我目前正在通过K&R包括解决练习.

我如何说服Emacs M-x compile并且make -k应该调用Clang(或GCC 4.8)而不是旧版本的GCC?

tep*_*pic 8

这不是emacs,而是make.它默认使用环境变量CC,后者默认为gcc.只需在启动emacs之前运行它(假设您使用的是Unix):

$ export CC=clang
Run Code Online (Sandbox Code Playgroud)

或者,使用直接指定CC的makefile.


Dan*_*Dan 2

您可以编写一个 makefile,并在编译行显式使用 clang。

像这样的事情会起作用:

CC=叮当声
CFLAGS= -Wall -Werror -std=c99 -ggdb -O0

%: %。C
	$(CC) $(CFLAGS) $^ -o $@

请注意,最后一行需要以制表符开头才能实际工作。