在 Emacs 中使用 Visual Studio 6 C++ 编译器
Posted
技术标签:
【中文标题】在 Emacs 中使用 Visual Studio 6 C++ 编译器【英文标题】:Using Visual Studio 6 C++ compiler from within Emacs 【发布时间】:2009-06-04 20:03:28 【问题描述】:我刚刚开始使用 c++ 开发,我想使用 emacs 编写代码,然后使用 Visual Studio 6 编译器在 emacs 中编译和运行它。我已经用谷歌搜索了一下,但似乎无法找到有关如何完成此操作的解释。 有什么指点吗?
感谢您的帮助,
乔尔格
【问题讨论】:
+1 用于 Emacs 踢出糟糕的编辑器 ;) 【参考方案1】:在过去的几年里,我理所当然地这样做了。有两种方法可以做到这一点:
在旧版本的VS(包括VS 6.0)中,有一个按钮可以导出项目的nmake文件。我有时会这样做,然后使用 nmake 进行编译。我有
(setq compile-command "nmake debug")
在我的 .xemace/init.el 中。您必须添加 nmake 文件的名称,并且 nmake.exe 必须在您的路径中。 (顺便说一句,我修改了 compiler-error-regexp-alist-alist 以帮助解决错误。如果你也想要这个,请告诉我。)
较新版本的 VS 没有导出 nmake 文件的按钮。对于这些,我称之为 devenv.com。在这种情况下,我有
(setq compile-command "devenv.com /build Debug")
在我的 .xemacs/init.el 中。您必须添加 .sln 文件的名称。虽然我在 VS 6.0 中没有这样做,但我相信它也可以工作。
【讨论】:
【参考方案2】:我不确定您是否会考虑仅将 Visual Studio 中的文本编辑器与 Emacs 交换,但这里有一个 sf.net 项目可以做到这一点。
http://sourceforge.net/projects/visemacs/
【讨论】:
【参考方案3】:结帐http://www.kuro5hin.org/story/2003/4/1/21741/10470
【讨论】:
【参考方案4】:作为 Andrew Stein 回答的后续,要在 Visual Studio 6 上构建命令行而不使用 nmake,请使用以下语法:
msdev wspname.dsw /make "project - Win32 Debug"
【讨论】:
注意:对于 VS2005,正确的命令是devenv.com ../slnname.sln /build "project - Win32 Debug"
(如果您想在编译缓冲区中查看输出,“.com”很重要)。 emacswiki.org/MSVisualStudio 提供了在 emacs 中设置环境变量的良好说明【参考方案5】:
Visual Studio 是一个 IDE
它使用下面的 cl.exe 编译器。
【讨论】:
【参考方案6】:我们使用带有 GNU make (gmake) 的 emacs,它使用我们自己的 gmake 包装器可执行文件进行包装,并且运行良好。
只需设置一个简单的键绑定即可在您正在编译的 .c/.cpp 文件上调用 cl.exe 以构建您的 .obj 文件。我们有一个用于在文件夹中初始化编译的键绑定,它将生成所有不是最新的 .obj 文件,但这完全由 GNU make 处理。
我们还有其他键绑定,例如用于链接可执行文件并启动它等。
【讨论】:
【参考方案7】:有点跑题了,但你为什么使用 Visual Studio 6?当前版本的 Visual Studio 的编译器(以及精简的 IDE)可从 Microsoft 免费获得。
在任何一种情况下,您都可以从命令行调用编译器,因此它应该像设置 makefile 一样简单。
【讨论】:
【参考方案8】:如果您只想设置一个文件进行编译,请将其放在文件顶部...
// -*- compile-command:"g++ test.cpp -g -lwinmm -o test.exe"; -*-
在此查看我的blog post
当然,您需要调整以使用 CL.EXE 并选择适当的参数。
要启动 make 它有点棘手,因为当您在层次结构的更下方编辑文件时,您必须像在父源目录中一样运行 make。
我知道这样做的唯一方法是将其放在每个文件的顶部...
// -*- compile-command:"nmake"; default-directory:"c:/projectroot/"; -*-
【讨论】:
以上是关于在 Emacs 中使用 Visual Studio 6 C++ 编译器的主要内容,如果未能解决你的问题,请参考以下文章
我可以从命令行编码和编译所有类型的 Visual Studio 应用程序吗?
如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?