据我所知,在linux cmake中,make和make install可以组合在一起产生一个版本。例如:
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
然而,在Windows中,我找不到可以执行相同工作的类似命令。通常,如果使用Visual Studio,则首先构建.sln项目,然后编译.sln项目,最后运行INSTALL项目。是否可以使用Linux中的几个命令进行发布。非常感谢。
答案 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
将YEAR
和EDITION
替换为您的相应值,例如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\"
将YEAR
和EDITION
替换为您的相应值,例如2017年和社区
编辑:
我还注意到,如果设置了环境变量,Visual Studio 2017中的某些解决方案将不会在解决方案资源管理器中显示其内容。如有必要,只需再次将其删除。