首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows中的cmake和make

问Windows中的cmake和make
EN

Stack Overflow用户
提问于 2014-01-28 01:27:33
回答 2查看 12.7K关注 0票数 13

我知道在linux cmake中,make和make install可以组合在一起生成一个发行版。例如:

代码语言:javascript
复制
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install 

然而,在windows中,我找不到类似的命令来做同样的工作。通常,如果使用Visual Studio,则首先构建一个.sln项目,然后编译.sln项目,最后运行安装项目。是否可以像在Linux中那样使用几个命令来发布版本?非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-28 01:39:59

您可以使用msbuild而不是make:

代码语言:javascript
复制
cmake -G"Visual Studio 12" ..
msbuild /P:Configuration=Release INSTALL.vcxproj

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

代码语言:javascript
复制
cmake -G"Visual Studio 12" ..
cmake --build . --target INSTALL --config Release

如果您需要不带参数的make命令的等价物(即make all),您也可以构建ALL_BUILD目标,但这是作为INSTALL目标的一部分构建的。

票数 27
EN

Stack Overflow用户

发布于 2019-12-16 19:48:58

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

代码语言:javascript
复制
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及更低版本:

代码语言:javascript
复制
SET VCTargetsPath="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\vXXX\"

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

对于Visual Studio 2017及更高版本:

代码语言:javascript
复制
SET VCTargetsPath="C:\Program Files (x86)\Microsoft Visual Studio\YEAR\EDITION\Common7\IDE\VC\VCTargets\"

将YEAR和EDITION替换为您对应的值,例如2017和社区

编辑:

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21387504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档