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所在目录。
cmake命令行生成32位和64位项目的更多相关文章
- 【原创】在Windows系统中使用VC9、VC11编译32位、64位PHP及其扩展
项目中需要使用runkit模块实现AOP,但是团队成员的开发环境都是Windows,而runkit模块官方没有提供Windows环境下的dll扩展,只能自己编译. 下面是编译过程的分类总结.(操作系统 ...
- 查看Eclipse32位还是64位以及Eclipse的编译版本号,查看JDK是32位还是64位
一.查看Eclipse是32位还是64位 首先进入到Eclipse的安装目录: 查找到文件名为"eclipse.ini" 文件,使用文本编辑工具,或记事本打开,如下图: 以上是查看 ...
- Windows10 VS2015下分别编译libevent 32位和64位库
Libevnt 在Windows10 VS2015下分别编译32位和64位库 直接上王道 libevent代码地址: https://github.com/libevent/libevent git ...
- 查看 Java Web 开发环境软件是 32 位还是 64 位
这里 Java Web 的开发环境指的是:Java + Tomcat + Eclipse 查看 Java 的版本 java -version 结果: JDK 版本位 1.8.0\_221 而且是 64 ...
- 64位主机64位oracle下装32位客户端ODAC(NFPACS版)
64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd 1.下载Oracle Data Access Components(ODAC) Xcopy的两个版本: x86:(我 ...
- Linux系统查看系统是32位还是64位方法总结
这篇博客是总结.归纳查看Linux系统是32位还是64位的一些方法,很多内容来自网上网友的博客.本篇只是整理.梳理这方面的知识,方便自己忘记的时候随时查看. 方法1:getconf LONG_BIT ...
- 查看Linux是32位还是64位
最直接简洁的办法: 在linux终端输入getconf LONG_BIT命令 如果是32位机器,则结果为32 [root@localhost ~]# getconf LONG_BIT 32 如果是64 ...
- Windows2003 IIS6.0支持32位和64位两种模式的设置方法
IIS 6.0 可支持 32 位和 64 位两种模式.但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式.ASP.NET 1.1 只在 32 位模式下运行.而 ASP ...
- linux-查看系统是32位还是64位
可以用命令“getconf LONG_BIT”查看, 如果返回的结果是32则说明是32位,返回的结果是64则说明是64位. 此外还可以使用命令“uname -a”查看, 输出的结果中,如果有x86_6 ...
随机推荐
- Docker实用命令介绍
Docker实用命令介绍 1. docker启动.关闭.停止 ╭─wil-xz in ~ 12:15:44 ╰─٩(ŏ﹏ŏ.)۶ service docker restart Redirecting ...
- 12-Add Digits
寻找一个数的数根,用了暴力破解的方式,时间复杂度比较高 暂未想到O(1)的方式 Given a non-negative integer num, repeatedly add all its dig ...
- 文件和目录之间建立链接 (ln)
- Linux学习 - 输入输出重定向,管道符,通配符
一.键盘输入读取read read [选项] [变量名] -p [显示信息] 在等待read输入时,输出提示信息 -t [秒数] 指定read输入等待时间 -n [字符数] 指定read只接收n个字符 ...
- 设置linux下oracle开机自启动
1.修改配置文件,vi /etc/oratab orcl:/u01/app/oracle/product/11.2.0/db_1:Y 2.创建启动文件,/etc/init.d/ #!/bin/sh # ...
- linux 配置本地yum
1.挂载光盘 #挂载光盘 mount /dev/cdrom /mnt/cdrom 2.修改yum.conf, 运行 vi /etc/yum.conf,文件替换成如下内容 [main] cachedir ...
- spring注解事务管理
使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间<beans xmlns="http://www.springframework.org/schema/b ...
- Linux 双网卡绑定及Bridge
Linux 双网卡绑定及Bridge 阅读(5,202) 一:linux操作系统下双网卡绑定有七种模式.现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多. ...
- 🏆【Alibaba中间件技术系列】「RocketMQ技术专题」Broker配置介绍及发送流程、异常(XX Busy)问题分析
参考资料 Rocketmq官网:http://rocketmq.apache.org/ Rocketmq的其它项目:https://github.com/apache/rocketmq-externa ...
- arcgis api for js自定义引用方式
(1)常规模式 即arcgis js常见的模块引用方式,采用 require-function 模式,function的参数与require一一对应即可(dojo/domReady!比较特殊,无需 ...