cmake命令行生成32位和64位項目


概述

  • 本文演示環境: win10 + VS2017

1.指定變量值

咱們常用命令【cmake ..】在build目錄下配置生成項目和解決方案。 其實,這個命令還有其他用法。
指定CMakeLists.txt中的變量值。比如 , fmt 庫 的CMakeLists.txt中有一個變量 【BUILD_SHARED_LIBS】,可以在命令行指定其值:

cmake -DBUILD_SHARED_LIBS=TRUE ..

對比可知,多了中間指定變量的命令, 其他沒有變化。

2.指定編譯器版本

使用命令: cmake -G 可知當前cmake支持的編譯器

 1   Visual Studio 16 2019        = Generates Visual Studio 2019 project files.
 2                                  Use -A option to specify architecture.
 3   Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
 4                                  Optional [arch] can be "Win64" or "ARM".
 5   Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
 6                                  Optional [arch] can be "Win64" or "ARM".
 7   Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
 8                                  Optional [arch] can be "Win64" or "ARM".
 9   Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
10                                  Optional [arch] can be "Win64" or "ARM".
11   Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
12                                  Optional [arch] can be "Win64" or "IA64".
13   Visual Studio 9 2008 [arch]  = Generates Visual Studio 2008 project files.
14                                  Optional [arch] can be "Win64" or "IA64".
命令行,需要給cmake 傳遞參數 -G   指定編譯器的一個例子如下,這里,指定VS2017為例
cmake -G "Visual Studio 15 2017 " ..

該命令將默認生成32位程序
  注意: 【..】前面有空格
-【擴展】
  Linux或者Unix,我經常使用Clang(++) 構建我的程序,通常會在CMakeLists.txt文件最前面project 添加下面的兩行,且一定要放在project之前

SET(CMAKE_C_COMPILER /usr/bin/clang)
SET(CMAKE_CXX_COMPILER /usr/bin/clang++) 

3.指定指定生成64位的配置命令

上面顯示Vs的版本已經說明了參數格式: Visual Studio 9 2008 [arch] 。 這里的 [arch] 就是需要指定的平台目標。
  一個例子幫你理解, 還是以VS2017為例,命令如下:

cmake -G "Visual Studio 15 2017  Win64" ..

對比 【2】中的命令多了 【Win64】

4.指定目錄下的CMakeLists.txt

習慣上,我更喜歡在和top目錄下新建build 目錄, 將輸出的文件放到這里。【cmake ..】 命令中的【..】其實就是指定 top目錄下的CMakeLists.txt文件。
原型:

cmake to/path/cmake_lists_txt_dir   

其中【 to/path/cmake_lists_txt_dir 】則指向的是CMakeLists.txt所在目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM