在Windows中使用cmake和make

时间:2014-01-27 17:27:33

标签: visual-studio-2010 cmake

据我所知,在linux cmake中,make和make install可以组合在一起产生一个版本。例如:

cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install 

然而,在Windows中,我找不到可以执行相同工作的类似命令。通常,如果使用Visual Studio,则首先构建.sln项目,然后编译.sln项目,最后运行INSTALL项目。是否可以使用Linux中的几个命令进行发布。非常感谢。

2 个答案:

答案 0 :(得分:9)

您可以使用msbuild而不是make:

cmake -G"Visual Studio 12" ..
msbuild /P:Configuration=Release INSTALL.vcxproj

或者您可以使用CMake的--build参数:

cmake -G"Visual Studio 12" ..
cmake --build . --target INSTALL --config Release

如果你需要等同于没有args的make命令(即make all),你也可以构建ALL_BUILD目标,但这是INSTALL的一部分。无论如何,1}}目标。

答案 1 :(得分:0)

除了Fraser's answer,要使第一个解决方案生效,可能还需要从原始路径以管理员身份在CMD中调用MSBuild

cmake ..
"C:\Program Files (x86)\Microsoft Visual Studio\YEAR\EDITION\MSBuild\15.0\Bin\MSBuild.exe" INSTALL.vcxproj -p:Configuration=Release

YEAREDITION替换为您的相应值,例如2017年和社区

您可能会收到以下错误,这意味着您的环境变量未设置。

  

错误MSB4019:找不到导入的项目“ C:\ Microsoft.Cpp.Default.props”。   确认声明中的路径正确,并且文件存在   在磁盘上。

可以直接在系统设置中设置环境变量,也可以使用CMD作为管理员设置。 (Source for reference)

对于 Visual Studio 2015 及以下版本:

SET VCTargetsPath="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\vXXX\"

vXXX替换为您的相应版本,例如140

对于 Visual Studio 2017 及更高版本:

SET VCTargetsPath="C:\Program Files (x86)\Microsoft Visual Studio\YEAR\EDITION\Common7\IDE\VC\VCTargets\"

YEAREDITION替换为您的相应值,例如2017年和社区


编辑:

我还注意到,如果设置了环境变量,Visual Studio 2017中的某些解决方案将不会在解决方案资源管理器中显示其内容。如有必要,只需再次将其删除。