我知道在Linux上,可以将cmake、make和make install组合使用来生成一个发布版本。例如:
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
然而,在Windows中,我找不到类似的命令来完成同样的工作。通常情况下,如果使用Visual Studio,则需要首先构建.sln项目,然后编译.sln项目,最后运行INSTALL项目。是否有可能像在Linux中那样用几个命令发布?非常感谢。
我知道在Linux上,可以将cmake、make和make install组合使用来生成一个发布版本。例如:
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
然而,在Windows中,我找不到类似的命令来完成同样的工作。通常情况下,如果使用Visual Studio,则需要首先构建.sln项目,然后编译.sln项目,最后运行INSTALL项目。是否有可能像在Linux中那样用几个命令发布?非常感谢。
你可以使用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
make
命令(即make all
)的等效命令,那么你也可以构建ALL_BUILD
目标,但是这个目标会随着INSTALL
目标一起构建。除了Fraser的答案之外,要使第一个解决方案工作,可能需要在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和Community。环境变量可以直接在系统设置中设置,也可以使用CMD作为管理员设置。(参考来源) 对于Visual Studio 2015及以下版本:error MSB4019: 未找到导入的项目“C:\Microsoft.Cpp.Default.props”。 确认声明中的路径正确,并且文件存在于磁盘上。
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 和 Community。
编辑:
我还注意到,如果设置了环境变量,Visual Studio 2017 中的某些解决方案在“解决方案资源管理器”中不会显示其内容。如果需要,只需将其删除即可。