判断交叉编译:

if(CMAKE_CROSSCOMPILING)message(STATUS "Cross Comliling!!!,  ARM")set(CURRENT_SYSTEM "Arm")
else()message(STATUS "No Cross Comliling!!!")
endif()

判断32位64位系统:

if(CMAKE_CL_64)set(CURRENT_PLATFORM "x64")message(STATUS "Current Platform is ${CURRENT_PLATFORM}")
else(CMAKE_CL_64)set(CURRENT_PLATFORM "x86")message(STATUS "Current Platform is ${CURRENT_PLATFORM}")
endif(CMAKE_CL_64)

判断操作系统:

    if(CMAKE_SYSTEM_NAME MATCHES "Linux")set(CURRENT_SYSTEM "Linux")elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")set(CURRENT_SYSTEM "Windows")elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")set(CURRENT_SYSTEM "FreeBSD")endif()

代码实例

CMakeLists.txt文件节选:

message(STATUS "===============================")
MESSAGE(STATUS "current operation system is ${CMAKE_SYSTEM}")
message(STATUS "current operation system name is ${CMAKE_SYSTEM_NAME}")if(CMAKE_CL_64)set(CURRENT_PLATFORM "x64")message(STATUS "Current Platform is ${CURRENT_PLATFORM}")
else(CMAKE_CL_64)set(CURRENT_PLATFORM "x86")message(STATUS "Current Platform is ${CURRENT_PLATFORM}")
endif(CMAKE_CL_64)if(CMAKE_CROSSCOMPILING)message(STATUS "Cross Comliling!!!,  ARM")set(CURRENT_SYSTEM "Arm")
else()message(STATUS "No Cross Comliling!!!")#根据不同平台给CURRENT_SYSTEM命名if(CMAKE_SYSTEM_NAME MATCHES "Linux")set(CURRENT_SYSTEM "Linux")elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")set(CURRENT_SYSTEM "Windows")elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")set(CURRENT_SYSTEM "FreeBSD")endif()endif()

cmake打印信息(Ubuntu20系统x86测试测试):

root@root:/home/root123/testdemo/demo1/build# cmake ..
-- ===============================
-- current operation system is Linux-5.11.0-41-generic
-- current operation system name is Linux
-- Current Platform is x86
-- No Cross Comliling!!!
-- ===============================
-- /home/root123/testdemo/demo1/Lib/Debug/Linux/x86
-- ===============================

cmake跨平台编译之判断操作系统平台、32位64位系统相关推荐

  1. 2018 腾讯内部转岗面试题 1 —— 不用 sizeof 判断操作系统是 32 还是 64 位

    文章目录 前言 题目 解法一:最大值溢出 解法二:__WORDSIZE 解法三:指针变量位宽 参考文献 前言 2018 上半年折腾了一回,想换个后台开发岗尝试锻炼一下自己,面了三个部门,将有关有意思的 ...

  2. cmake 判断操作系统平台

    转载自 cmake 判断操作系统平台 MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")IF (CMAKE_SYSTEM_N ...

  3. 服务器开发27:log4c充当服务器跨平台日志库(cmake跨平台编译,配置介绍及代码封装)

    文章目录 一.跨平台编译 1)编译准备 (1)expat编译 2)原生linux编译.安装 3)cmake跨平台编译 二.log4c配置笔记 1)与log4cpp\log4cxx的比较 2)log4c ...

  4. 【C#】C#中使用GDAL3(一):Windows下超详细编译C#版GDAL3.3.0(VS2015+.NET 4+32位/64位)

    转载请注明原文地址:https://www.cnblogs.com/litou/p/15004877.html 总目录 (一)Windows下超详细编译C#版GDAL3.3.0(VS2015+.NET ...

  5. php dll是下32还是64位,windows下关于boost 64位和32位库的编译详细介绍

    常用编译命令: cd E:\OpenSource\boost_1_63_0\boost_1_63_0 编译32位库: x86环境下编译得先从开始菜单启动Visual Studio的Visual Stu ...

  6. 操作系统32位与64位的区别

    经常有网友问我这样的一个问题,什么是32位与64系统?32位系统与64位的区别等等.围绕目前这些大家比较关系的问题,电脑百事网编辑这里将与大家总结一下,关于32位操作系统与64位操作系统的区别. 首先 ...

  7. Android编译32或64位程序

    ★★★ 个人博客导读首页-点击此处 ★★★ 1.查看一个程序是32位还是64位: $ readelf -h tee-supplicant ELF Header: Magic: 7f 45 4c 46 ...

  8. Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮、代码补全等...

    Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等-- 语法高亮.代码提示补全. ...

  9. 32位/64位系统,jdk32位,64位,32/64位jdk编译出来的class和eclipse 32位和64位

    首先关于32位/64位系统,jdk32位,64位,32/64位jdk编译出来的class和eclipse 32位和64位的一些对应关系做些说明. 1.32位操作系统不可以装64位jdk,64位操作系统 ...

最新文章

  1. Gerrit 代码审核服务器的工作流和原理
  2. MFC中的CString.Format及CString,string,char*之间的转换
  3. 160921、React入门教程第一课--从零开始构建项目
  4. 【Linux】一步一步学Linux——arpd命令(184)
  5. selenium的使用教程3
  6. ux的重要性_颜色在UX中的重要性
  7. 编译aspell时出错
  8. 使用说明 思迅收银系统_思迅天店标准版收银系统条码秤+计价秤操作指南
  9. PLSQL Developer13破解汉化
  10. 酒浓码浓 - js / 前端 / 支付宝,微信合并二维码功能
  11. linux中mysql忘记密码
  12. 大学计算机vb基础知识6,西华师范大学计算机VB试题及答案6
  13. python如何运行整个项目_如何运行django项目
  14. java 打印request的原始请求数据
  15. APN(default、mms、supl、dun、hipri接入点类型的区别)
  16. 华为linux输入法,华为默认手机输入法原来还能这么玩??涨知识了
  17. 计算机查看图片的打开方式,win10如何设置打开图片方式为照片查看器-img文件怎么打开...
  18. Phaser3之 load
  19. 最新软件云测试方法你知道多少?有什么好处
  20. 从文艺到抠脚-我的程序7年之痒

热门文章

  1. This application has requested the Runtime to terminate it in an unusual way. Please contact the app
  2. python-生成器函数进阶和各种推导式day15
  3. Ubuntu设置宽带连接DSL
  4. Python学习之路,第二次复习:列表,元组
  5. 【.Net 学习系列】-- EF Core实践(Code First)
  6. [bzoj1187][HNOI2007]神奇游乐园
  7. OC学习篇之---归档和解挡
  8. linux Ubuntu apache2 伪静态设置
  9. SRM 533 DIV2
  10. ASP.NET Performance Monitoring, and When to Alert Administrators