我使用Emacs进行基本的文本编辑已经有一段时间了,但到今天为止,我正尝试将其用于c++编译。在过去的几个小时里,我一直在寻找如何去做这件事,但我一直在他们的技术上遇到障碍(我认为其中一些与教程过时有关)。
基本上,我想要做的就是能够编译我通过'M-x C++‘命令用Emacs编写的编译程序。
到目前为止,我已经安装了Cygwin,并下载了gcc的软件包。我已经尝试了在线教程中介绍的其他一些解决方案,但都没有成功。
谢谢。
发布于 2009-04-12 06:44:48
M-x compile命令调用外壳程序(例如linux bash、windows cmd.exe等)来运行make命令。在windows上,我认为emacs默认使用cmd.exe外壳(通过一个特殊的C:/Program Files/Emacs/emacs/bin/cmdproxy.exe可执行文件)。
如果希望M-x compile使用不同的bash (在本例中可能是cygwin shell ),则需要通过更改shell-file-name变量或使用SHELL环境变量来告知emacs。您还需要确保通过更改exec-path变量(或使用PATH环境变量)找到cygwin make。
为此,请执行以下操作:
(setq shell-file-name "C:/cygwin/bin/bash.exe")
(setq exec-path (cons "C:/cygwin/bin" exec-path))你也可以看看setup-cygwin.el来设置这个和cygwin的其他一些东西。
发布于 2009-04-11 22:30:53
在安装编译器之后。您可以使用以下代码片段来自定义编译命令
(add-hook 'c++-mode-hook
(lambda ()
(unless (file-exists-p "Makefile")
(set (make-local-variable 'compile-command)
(let ((file (file-name-nondirectory buffer-file-name)))
(concat "g++ -g -O2 -Wall -o "
(file-name-sans-extension file)
" " file))))))发布于 2009-04-11 22:15:53
你可以尝试MinGW - "Minimalist GNU for Windows.",我想不起来如何配置emacs来从M-x编译中调用自定义构建工具,但这应该是可能的。这是我刚刚遇到的一个链接,它可能是一个起点。
http://www.cae.tntech.edu/help/programming/free-programming-tools-windows
https://stackoverflow.com/questions/740836
复制相似问题