首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Emacs在Windows上编译C++程序

用Emacs在Windows上编译C++程序
EN

Stack Overflow用户
提问于 2009-04-11 21:47:16
回答 5查看 14.3K关注 0票数 9

我使用Emacs进行基本的文本编辑已经有一段时间了,但到今天为止,我正尝试将其用于c++编译。在过去的几个小时里,我一直在寻找如何去做这件事,但我一直在他们的技术上遇到障碍(我认为其中一些与教程过时有关)。

基本上,我想要做的就是能够编译我通过'M-x C++‘命令用Emacs编写的编译程序。

到目前为止,我已经安装了Cygwin,并下载了gcc的软件包。我已经尝试了在线教程中介绍的其他一些解决方案,但都没有成功。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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

为此,请执行以下操作:

代码语言:javascript
运行
复制
(setq shell-file-name "C:/cygwin/bin/bash.exe") 
(setq exec-path (cons "C:/cygwin/bin" exec-path))

你也可以看看setup-cygwin.el来设置这个和cygwin的其他一些东西。

票数 3
EN

Stack Overflow用户

发布于 2009-04-11 22:30:53

在安装编译器之后。您可以使用以下代码片段来自定义编译命令

代码语言:javascript
运行
复制
(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))))))
票数 11
EN

Stack Overflow用户

发布于 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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/740836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档