更改 Emacs 中的默认编译器?

标签 c gcc emacs makefile clang

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

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

最佳答案

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

$ export CC=clang

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

关于更改 Emacs 中的默认编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776339/

相关文章:

c - 如何告诉 GCC 指针参数总是双字对齐的?

emacs - 在Windows上进行提交时Magit非常慢

regex - 如何定义对特定字符串使用 `replace-string` 的 Emacs 命令

c - 在 C 中获取 "void value not ignored as it ought to be"

c - GCC 和 G++ struct packing 的区别?

c++ - gcc 6.3 和 clang 4.0 中的 std::get_time() 不适用于完整的月份名称

c++ - 什么是c/c++数据段和堆栈大小?

埃马克斯。在同一台机器上读取和写入另一个用户帐户的文件

c++ - C/C++ 基本类型是原子的吗?

c - IOCTL 调用无法读取和写入设备