CMake + MSVC构建工具2015 - 调用cmake后要做什么?

时间:2018-02-01 16:07:08

标签: windows visual-studio visual-studio-2015 build cmake

我以前从未在Windows上使用过CMake,或者曾经使用过MSVC;所以这是一个新手问题。

我已经安装了CMake和一些最小的可自由下载的" Microsoft Visual C ++构建工具2015" (来自here)在Windows 10计算机上。我已经检查了基于CMake的项目(在Linux上构建得很好),我已经准备好了。

所以,在shell窗口中,我这样做:

PS C:\Users\joeuser\the_project> mkdir build
... etc. etc. ...
PS C:\Users\joeuser\the_project> cd build
PS C:\Users\joeuser\the_project\build> cmake ../
-- Building for: Visual Studio 14 2015
-- Selecting Windows SDK version  to target Windows 10.0.15063.
-- lots of checks here
-- etc. etc.

已经完成了。到现在为止还挺好。但是 - 现在怎么样?在Unix' ish系统中,我会执行make,也许make install;以后可能会make clean。我的问题是:

  • 我使用的MSVC工具是否等同于make?我是关于nmake和msys的,但我不确定这些是否相关。
  • 我现在要做什么来构建,安装或清理构建目录?
  • 在我的场景中使用不同的CMake生成器是更好/更容易/更常见的做法吗?

1 个答案:

答案 0 :(得分:1)

让我之前的评论得到答案:

然后,您将通过CMake直接调用底层构建工具:

cmake --build . --target ALL_BUILD --config Debug -- /nologo /verbosity:minimal

这为您提供了一个几乎安静的构建过程,就像您习惯于make一样。

  

为什么我要为CMake提供如此多的论据?

因为CMake是一个构建系统生成器,并将这些参数定向到底层构建工具(makeMSBuildnmake,...)。底层构建工具可以具有针对目标等的不同命名约定,例如,使用户几乎总是提供目标allcleaninstall。但CMake生成的Visual Studio解决方案默认使用ALL_BUILDINSTALLRUN_TESTS。没有CLEAN目标。使用MSBuild,

  • 安装您的解决方案,您可以选择--target INSTALL
  • 对于正在运行的测试,您可以选择--target RUN_TESTS
  • 对于清理,您必须使用--target ALL_BUILD --config Debug -- /nologo /verbosity:minimal /t:Clean,因为Visual Studio解决方案不包含干净的目标,但MSBuild提供了一个。

MSBuild的其他重要论点是:

  • /maxcpucount:<numberOfCpus>(限制构建过程使用的CPU数量)和
  • "/l:FileLogger,Microsoft.Build.Engine;logfile=<YOUR_LOGFILE_NAME>"将MSBuild输出保存到文件。