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"本身不是缩写.它是项目的全名 ...
随机推荐
- Shutting down CodePlex 03/31/2017
Almost 11 years after we created CodePlex, it’s time to say goodbye. We launched CodePlex in 2006 b ...
- PropertyGrid 重难点总结 转
PropertyGrid的界面组成与不同部分的名称如下图所示. 本博文不算是自己写作的,只是将PropertyGrid中的几项十分有用的功能的应用方面的文字进行一下总结,希望以后大家对Property ...
- centos7 apache设置伪静态 开启rewrite_module
设置伪静态除了要生成.htaccess文件外,还需要查看服务器是否开启了rewrite_module.经过一番的纠结,处理方法如下: 编辑Apache配置文件 nano /etc/httpd/conf ...
- 学习shader之前必须知道的东西之计算机图形学-渲染管线
引言 shader到底是干什么用的?shader的工作原理是什么? 其实当我们对这个问题还很懵懂的时候,就已经开始急不可耐的要四处搜寻有关shader的资料,恨不得立刻上手写一个出来.但看了一些资料甚 ...
- SQL Server 导出Excel有换行的解决方法
参考地址::https://vcoo.cc/blog/1234/ 从 SQL Server 查询结果中复制结果数据粘贴到 Excel 中存在这么个问题:如果字段内容中有换行符,那么粘贴到 Excel ...
- Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动
一.安装过程 1.打开官网,在左侧选择要下载的版本,比如下下载Tomcat8:https://tomcat.apache.org/download-80.cgi 2.找到tar.gz的下载地址:htt ...
- 【PMP】项目、项目集、项目组合
项目:为创建独特的产品和服务成果而进行的临时性工作. 项目集:是一组相互关联且被协调管理的项目.子项目集和项目活动,以便获得分别管理所无法获得的利益. 项目组合:是指实现战略目标而组合在一起管理的项目 ...
- 如何部署hadoop集群
假设我们有三台服务器,他们的角色我们做如下划分: 10.96.21.120 master 10.96.21.119 slave1 10.96.21.121 slave2 接下来我们按照这个配置来部署h ...
- 最新Android & iOS设计尺寸规范
Android 和 iPhone.iPad以及主流手机屏幕的分辨率和相关设计尺寸规范 <点击看大图>
- 查看占用IO的进程
查看占用IO的进程 http://www.xaprb.com/blog/2009/08/23/how-to-find-per-process-io-statistics-on-linux/