![](/img/trans.png)
[英]How can I run the MSVC preprocessor and compiler in two separate steps?
[英]How to run “:compiler msvc” and “:comp msbuild” with Vim on Windows?
我有桌面的 VS Express (2012) 。 我还获得了NMAKE.EXE计划吗?
http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx - Microsoft程序维护实用程序(NMAKE.EXE)是一个基于描述文件中包含的命令构建项目的工具。
当我运行:make
运行后:compiler msvc
,shell返回消息“ 'nmake'不被识别为内部或外部命令,” 。 如何使用这些命令编译C ++程序? NMAKE.EXE工具是否与'nmake'命令有关系?
http://msdn.microsoft.com/en-us/library/wea2sca5(v=vs.90).aspx - MSBuild是Microsoft和Visual Studio的新构建平台。
http://msdn.microsoft.com/en-us/library/dd293626.aspx - 您可以使用MSBuild工具从命令提示符构建Visual C ++应用程序。 构建过程由您可以创建和编辑的项目文件(.vcxproj)中的信息控制。 项目文件根据构建阶段,条件和事件指定构建选项。
我是否因为我的VS Express for Desktop而获得了MSBuild工具? 当我使用:make
运行后:compiler msbuild
,shell返回消息“'msbuild'不被识别为内部或外部命令,” 。 msbuild.vim与MSBuild工具有关系吗?
msbuild.vim的维护者说: “我使用.NET编写了用于编译C#项目的脚本......我不知道它是否适用于C ++ ...”
我怎样才能通过运行:compiler msbuild
之前:compiler msbuild
:make
in Vim?
在这个问题上,编译程序(例如C ++源文件)只有两个问题,请回答详细说明:
:compiler msvc
? :compiler msbuild
? 快速搜索了一下: 入门 - 使用VIM进行C / C ++编程 ,这可能是一个很好的起点。
正如user786653所提到的,这是失败的,因为您的PATH不包含nmake.exe所在的目录。您可以检查您的路径
:echo $PATH
Vim不会替换底层构建功能,它只是包装它。
在测试目录中创建新文件:
TEST.CPP
#include <iostream> int main() { printf("hello world."); return 0; }
Makefile文件
all: cl test.cpp
设置编译器(gVim)
:compiler msvc
编译(gVim)
:make
我没有msbuild.vim脚本,但通过将“make program”设置为msbuild.exe
:set makeprg=msbuild
您可以通过从包含解决方案(.sln)或项目(.vxcproj)文件的目录运行make来构建,或者您可以使用msbuild.exe命令行,如下所示:
:make c:\Test\Test.sln /t:Rebuild /p:Configuration=Debug
编译后,您可以检查输出
:copen
并导航错误(n代表next,p代表previous,r代表倒带到第一个错误)
:cn
:cp
:cr
当我使用:make运行后:编译器msbuild,shell返回消息“'msbuild'不被识别为内部或外部命令,”。 msbuild.vim与MSBuild工具有关系吗?
是。
要在命令提示符中启用msbuild,只需将计算机上.net4框架安装的路径添加到PATH环境变量即可。 以下在Windows上为我工作:
您可以通过右键单击“计算机”,单击“属性”并单击左侧导航栏上的“高级系统设置”来访问环境变量。 在下一个对话框bog上单击“环境变量”,向下滚动到“PATH”并对其进行编辑以包含框架的路径(在此处的最后一个条目后不要忘记';'。
作为参考我的路径是C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319
。 [1]
虽然我只将它用于C#项目,但我认为它也适用于C ++。 请记住,你必须运行msbuild
项目目录里面 ,否则的MSBuild将无法找到您的项目。
为了完整起见,这里是我的vimrc片段(OP已通过电子邮件获得)。
noremap <F4> :<C-U>silent make<CR>:redraw!<CR>
au FileType cs compiler msbuild
当然,欢迎使用此编译器脚本的补丁和附加内容!
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.