cmake构建时指定编译器架构(x86 or x64)
vs2015 x64编译器为例,cmake命令如下:
- cmake -G "Visual Studio 14 Win64" path\to\source\dir
去掉Win64,就是32bit:
- cmake -G "Visual Studio 14" path\to\source\dir
另外一种等价方式,用命令行参数-A来指定架构(x64或者ARM):
- cmake -A x64 path\to\source\dir
更多参考:
https://cmake.org/cmake/help/v3.1/manual/cmake-generators.7.html#ide-build-tool-generators
windows下如果用了cmake -G"Visual Studio 14"命令,则cmake会给你生成Visual Studio工程文件相关的文件,比如:Project.sln,这时要编译生成必须用msbuild命令,比如:
- msbuild Project.sln
完整步骤是:
- cmake -G "Visual Studio 14 Win64" path\to\source\dir
- msbuild Project.sln
windows nmake
windows还提供了一种构建命令:nmake。使用命令如下:
- cmake -G "NMake Makefiles" path\to\source\dir
- nmake
如果要为nmake指定x64/x86,还不清楚cmake有没相关参数设置,目前我知道的方法如下,
以vs2015为例,打开cmd,定位到Microsoft Visual Studio 14.0\VC\目录下,然后执行命令:
- vcvarsall.bat x64
如果要32位,就执行:vcvarsall.bat x86。
执行完后再跳转到要构建的工程目录下,接着执行:cmake -G"NMake Makefiles" path\to\source\dir,以及:nmake。这样生成出来的程序就是x86或者x64版本。
Linux
设置CFLAGS(或者CXXFLAGS)为-m32或者-m64,例如:
- export CFLAGS=-m32
Mac OSX
32 bit
- cmake -DCMAKE_OSX_ARCHITECTURES=i386 /path/to/source/dir
64 bit
- cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 /path/to/source/dir will compile
96-bit universal
- cmake "-DCMAKE_OSX_ARCHITECTURES=x86_64;i386" /path/to/source/dir
参考:
http://stackoverflow.com/questions/5334095/cmake-multiarchitecture-compilation
cmake构建时指定编译器架构(x86 or x64)的更多相关文章
- cmake编译(编译目标)x86或x64
if(CMAKE_CL_64) #CMAKE的内建变量,如果是true,就说明编译器的64位的,自然可以编译64bit的程序 set(ADDRESS_MODEL 64) set(NODE_TAR ...
- mac book pro macOS10.13.3安装qt、qt creator C++开发环境,qt5.11.1,并解决cmake构建:qt mac this file is not part of any project the code
因为之前在Ubuntu下使用的是qtcreator开发,现在想在mac上装一个系统,因为许久未装了,还是花了点时间,不如写个博客,下次就更快安装了.在Mac OS X下使用Qt开发,需要配置Qt库和编 ...
- cmake编译opencv时指定cuda版本
之前有网友提问说,基于cmake编译时如果切换cuda版本,比如我同时装了cuda8和cuda9,opencv总是找到cuda9,我想用cuda8怎么办?实际上,手头上要配置的工程是基于opencv3 ...
- 所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器...
警告:所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配.这种不匹配可能会导致运行时失败.请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构 ...
- 在 linux 下使用 CMake 构建应用程序
学习cmake http://xwz.me/wiki/doku.php?id=cmake 碰到的一些问题: 1.You have changed variables that require your ...
- 用 cmake 构建Qt工程(对比qmake进行学习)
cmake vs qmake qmake 是为 Qt 量身打造的,使用起来非常方便 cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能 内置的 out-of source 构建.(目前 ...
- NDK(23) 使用CMake 构建 c/c++代码库
1.官网 https://developer.android.com/studio/projects/add-native-code.html 2.android studio 安装相关工具 在打开的 ...
- 使用VSCode和CMake构建跨平台的C/C++开发环境
日前在学习制作LearnOpenGL教程的实战项目Breakout游戏时,希望能将这个小游戏开发成跨平台的,支持在多个平台运行.工欲善其事必先利其器,首先需要做的自然是搭建一个舒服的跨平台C/C++开 ...
- LLVM编译器架构
LLVM编译器架构 LLVM概述 LLVM项目是模块化和可重用的编译器及工具链技术的集合.尽管名称如此,LLVM与传统虚拟机关系不大.名称" LLVM"本身不是缩写.它是项目的全名 ...
随机推荐
- C#编程(七十一)---------- 自定义特性
自定义特性 在说自定义之前,有必要先介绍一些基本的概念. 元数据:就是C#中封装的一些类,无法修改,类成员的特性被称为元数据中的注释 1.什么是特性? (1)属性和特性的区别 属性:属性是面向对象思想 ...
- PLSQL连接Oracle 数据库配置详解
1. 下载instantclient-basic-win32-11.2.0.1.0 (oracle官网下载地址:http://www.oracle.com/technetwork/topics/win ...
- EBS测试环境DataGuard配置
1.环境信息 primary数据库(必须运行在归档模式) ip 127.71.28.71 sid test db_unique_name test log_mode archivelog force_ ...
- spring-boot 1.X集成swagger
1.引入POM依赖 <properties> <swagger-annotations.version>1.5.13</swagger-annotations.versi ...
- oracle完全删除实例
问题描述: 重建oracle库实例,因此要删除数据库实例 问题解决: 利用自用自带的dbca库管理,实现图形化删除实例 01.登录安装oracle数据库的linux 打开xshell企业版的Xman ...
- MySQL数据切分的相关概念和原理详解
对于数据切分,我们可能还不是很熟悉,但是它对于MySQL数据库来说也是相当重要的一门技术,本文我们就详细介绍一下MySQL数据库的数据切分的相关知识,接下来就让我们一起来了解一下这部分内容. 什么是数 ...
- 基于Ubuntu + nextCloud 搭建自己的私人网盘
系统要求:Ubuntu 16.04.1 LTS 64 位操作系统 基础设置 切换为 root 账号 Ubutu 系统默认登录的用户为非 root 权限用户,为了能正常安装 nextCloud,需要切换 ...
- 【C#】C#对电子邮件的收发操作
目录结构: contents structure [+] 简介 发送邮件 读取邮件 1.简介 邮件传输常用的协议有,SMTP.POP3.IMAP4.他们都属于TCP/IP协议,默认状态下分别通过TCP ...
- WEBAPI 的简单示例
一.webapi 1.在webapiconfig中移除xml的返回格式,返回格式就自动使用Json格式 config.Formatters.Remove(config.Formatters.XmlFo ...
- Android 组件系列-----Activity初步
在上篇博文讲解了Android的Activity这个组件的启动流程后,接下来我们就来看看我们的Activity与我们的布局文件的关系吧 我们先来看看一个最简单的布局文件的内容: <Relativ ...