从命令行编译Visual Studio项目中的特定obj?

时间:2011-02-23 22:58:29

标签: c++ visual-studio command-line

我想从命令行编译file.obj。在IDE中,如果我正在查看file.cpp,我可以点击Build - >编译(或只需按Ctrl-F7),它将只编译file.obj对象。我希望能够从命令行执行此操作。理想情况下,类似于:

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

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

我也看过使用cl,但那只是编译器。为了使用它,我必须知道要正确设置环境的所有正确参数。所有这些都是使用msbuild / vcbuild自动处理的。

使用Makefiles,我总是可以make file.obj,它可以正确设置路径,包括dirs等。

这有什么选择吗?是否有自动方式从.vcproj文件中提取相应的设置,并将其传递给cl

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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 ++ - >命令行

和链接:

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