我以前从未在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
。我的问题是:
make
?我是关于nmake和msys的,但我不确定这些是否相关。答案 0 :(得分:1)
让我之前的评论得到答案:
然后,您将通过CMake直接调用底层构建工具:
cmake --build . --target ALL_BUILD --config Debug -- /nologo /verbosity:minimal
这为您提供了一个几乎安静的构建过程,就像您习惯于make
一样。
为什么我要为CMake提供如此多的论据?
因为CMake是一个构建系统生成器,并将这些参数定向到底层构建工具(make
,MSBuild
,nmake
,...)。底层构建工具可以具有针对目标等的不同命名约定,例如,使用户几乎总是提供目标all
,clean
和install
。但CMake生成的Visual Studio解决方案默认使用ALL_BUILD
,INSTALL
,RUN_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输出保存到文件。