2011-02-23 159 views
2

我想从命令行编译file.obj。在IDE中,如果我正在查看file.cpp,我可以单击Build - > Compile(或者只是按Ctrl-F7),它将只编译file.obj对象。我希望能够从命令行执行此操作。理想情况下,一个类似于:从命令行编译Visual Studio项目中的特定对象?

vcbuild project.vcproj Debug file.obj  // not a valid command 

我看过的文档vcbuildmsbuilddevenv。我也尝试过这三种,但我找不到一种方法来做到这一点。我可以找到一种方法来构建整个项目,但这不是我想要的。我想建立一个特定的源文件。 /pass1告诉vcbuild只编译(而不是链接),但它编译整个项目。

我也看过使用cl,但那只是编译器。为了使用它,我必须知道所有正确的参数才能正确设置我的环境。所有这一切都会自动照顾msbuild/vcbuild。

随着Makefile中,我总是可以做make file.obj,并会正确设置路径,包括迪尔斯等

这个任何选项?是否有自动的方式从.vcproj文件中提取适当的设置,并将它们传递给cl

+0

你设法让这个工作? – 2013-03-20 14:02:10

+0

@RobotMess它不能从命令行完成。但它可以在Visual Studio宏中完成。所以,为了我的需要,我能够创建一个能够完成我所需要的宏,并将其编译。obj,基于成功/失败采取行动,并继续做其他事情。我会看看我能否找到宏并将其作为答案发布。 – Tim 2013-03-20 23:21:39

回答

0

使用cl是从命令行编译单个文件的方式。就像你说的那样,它要求/允许你准确地指定你想要使用的选项。所有选项!

如果你实际上不想这样做,为什么不使用IDE为你自动完成它?为什么这是最难的方法,如果你不喜欢那样?

+0

我确实使用IDE进行一般开发。但是,我正在尝试编写一个自动化实用程序,并且需要反复编译单个源文件。 – Tim 2011-02-24 19:00:41

+0

@Tim:你也可以通过右键单击源文件然后选择“编译”来从IDE执行_that_(假设为VS)。否则cl.exe和也许一个小(NMake)make文件是要走的路... – 0xC0000022L 2011-02-24 19:17:33

+0

自动化。右键单击是用户操作。我需要一个自动化的方式来做到这一点。构建整个项目的 – Tim 2011-02-24 22:02:35

0

如果您只是想编译该项目,请运行visual studio命令行并致电msbuild

实施例:

MSBuild.exe MyProj.proj /property:Configuration=Debug 

这将从当前目录编译的Myproj项目。上的MSBuild http://msdn.microsoft.com/en-us/library/dd393574.aspx

或者,如果你需要建立一个单一的文件,你可以使用CL如上所述

更多信息。如果你进入项目的属性,你可以看到所有通过visual studio传递给cl的参数。通常在:

配置属性 - > C/C++ - >命令行

以及用于链接:

配置属性 - >链接器 - >命令行

+0

,这不是我所需要的。 – Tim 2011-12-17 11:06:31

+0

好的,修改后的答案,你应该能够以这种方式复制所有需要的选项 – Ha11owed 2011-12-18 07:53:04

+0

为了使用'cl',我必须知道所有正确的参数传递给它。是的,我可以在visual studio中查看它们,但这完全是手动的,并且必须为每个文件(或至少每个项目)完成。我正在寻找一种自动化的方式。 – Tim 2011-12-19 11:09:43

相关问题