概述

  • 本文演示环境: 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所在目录。

cmake命令行生成32位和64位项目的更多相关文章

  1. 【原创】在Windows系统中使用VC9、VC11编译32位、64位PHP及其扩展

    项目中需要使用runkit模块实现AOP,但是团队成员的开发环境都是Windows,而runkit模块官方没有提供Windows环境下的dll扩展,只能自己编译. 下面是编译过程的分类总结.(操作系统 ...

  2. 查看Eclipse32位还是64位以及Eclipse的编译版本号,查看JDK是32位还是64位

    一.查看Eclipse是32位还是64位 首先进入到Eclipse的安装目录: 查找到文件名为"eclipse.ini" 文件,使用文本编辑工具,或记事本打开,如下图: 以上是查看 ...

  3. Windows10 VS2015下分别编译libevent 32位和64位库

    Libevnt 在Windows10 VS2015下分别编译32位和64位库 直接上王道 libevent代码地址: https://github.com/libevent/libevent git ...

  4. 查看 Java Web 开发环境软件是 32 位还是 64 位

    这里 Java Web 的开发环境指的是:Java + Tomcat + Eclipse 查看 Java 的版本 java -version 结果: JDK 版本位 1.8.0\_221 而且是 64 ...

  5. 64位主机64位oracle下装32位客户端ODAC(NFPACS版)

    64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd 1.下载Oracle Data Access Components(ODAC) Xcopy的两个版本: x86:(我 ...

  6. Linux系统查看系统是32位还是64位方法总结

    这篇博客是总结.归纳查看Linux系统是32位还是64位的一些方法,很多内容来自网上网友的博客.本篇只是整理.梳理这方面的知识,方便自己忘记的时候随时查看. 方法1:getconf LONG_BIT ...

  7. 查看Linux是32位还是64位

    最直接简洁的办法: 在linux终端输入getconf LONG_BIT命令 如果是32位机器,则结果为32 [root@localhost ~]# getconf LONG_BIT 32 如果是64 ...

  8. Windows2003 IIS6.0支持32位和64位两种模式的设置方法

    IIS 6.0 可支持 32 位和 64 位两种模式.但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式.ASP.NET 1.1 只在 32 位模式下运行.而 ASP ...

  9. linux-查看系统是32位还是64位

    可以用命令“getconf LONG_BIT”查看, 如果返回的结果是32则说明是32位,返回的结果是64则说明是64位. 此外还可以使用命令“uname -a”查看, 输出的结果中,如果有x86_6 ...

随机推荐

  1. Oracle JDK 下载、配置与验证

    # 1. 解决官网下载JDK需要登录Oracle账号问题(JDK 8) JDK 1.8 官网下载地址: https://www.oracle.com/java/technologies/javase/ ...

  2. 【R】write.table输出数据带有行名?

    目录 问题 解决一 解决二 问题 这个问题应该很常见吧.R中输出数据框时,想要把行名和列名都输出.如果直接输出的话,输出的结果列名会往前移动一位,这显然不是我们想要的. 直接上例子: > a = ...

  3. 64-Unique Binary Search Trees

    96. Unique Binary Search Trees My Submissions Question Editorial Solution Total Accepted: 82788 Tota ...

  4. EXCEL-批量删除筛选出的行,并且保留首行

    筛选->ctrl+G->可见单元格->鼠标右键->删除整行. 之前的时候,是有个方法类似于上述步骤,可以保留标题行的,但是,不知道是不是少了哪一步,上述过程总是会删除标题行.就 ...

  5. MapReduce04 框架原理Shuffle

    目录 2 MapReduce工作流程 3 Shuffle机制(重点) 3.1 Shuffle机制 3.2 Partition分区 默认Partitioner分区 自定义Partitioner分区 自定 ...

  6. Sharding-JDBC 实现水平分库分表

    1.需求分析

  7. Linux信号1

    信号(signal)是一种软中断,他提供了一种处理异步事件的方法,也是进程间唯一的异步通信方式.在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某进程发生了什么事件,还可以给 ...

  8. [转]C++中const的使用

    原文链接:http://www.cnblogs.com/xudong-bupt/p/3509567.html 平时在写C++代码的时候不怎么注重const的使用,长久以来就把const的用法忘记了 写 ...

  9. listView 多布局

    最近在开发项目中遇到了实现类似淘宝首页的需求,使用listView可以解决,在此记录一下. 实现步骤: 重写 getViewTypeCount() – 返回你有多少个不同的布局 重写 getItemV ...

  10. idea2019.2安裝MybatisCodeHelper插件

    1. 下载MybatisCodeHelper插件 下载已破解的插件压缩包,一定注意校验sha1sum!!! 在IDEA中本地安装插件 激活方法(自2.7.3):IDEA顶部菜单:Tools -> ...