栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ 代码判断CPU 架构,操作系统类型,cmake 中判断CPU 架构,操作系统类型

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ 代码判断CPU 架构,操作系统类型,cmake 中判断CPU 架构,操作系统类型

在c++代码中,我们可以利用,系统或者编译器的宏定义来判断操作系统类型,cpu架构,这在跨平台程序中经常用到。

c++代码中判断
#include
  
int main(){
#if defined __linux__
    std::cout<<"linux system"< 

输出:

CMAKE 中判断操作系统类型和 cpu 架构:

 需要利用 cmake中的变量来判断。

CMAKE_HOST_SYSTEM_NAME:操作系统类型

CMAKE_HOST_SYSTEM_PROCESSOR:cpu 指令集

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10.0)

message(${CMAKE_HOST_SYSTEM_NAME})
message(${CMAKE_HOST_SYSTEM_PROCESSOR})

if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux")
    message("this is Linux")
elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Android")
	message("this is Android")
endif()
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
    message("this is aarch64 cpu")
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
	message("this is x86_64 cpu")
endif()

执行结果:

常用宏定义: 

操作系统预定义宏:

操作系统公共定义64位系统定义
Windows_WIN32_WIN64
macOS__APPLE____LP64__
Linux__linux____LP64__
Android__ANDROID____LP64__

编译器预定义宏:

编译器编译器定义x86指令集AMD64指令集ARM32指令集Thumb指令集ARM64指令集
MSVC_MSC_VER_M_IX86_M_X64_M_ARM_M_THUMB_M_ARM64
GCC__GNUC____i386____x86_64____arm____thumb____aarch64__
Clang__clang____i386____x86_64____arm____thumb____aarch64__

参考:操作系统和编译器预定义宏 – virbox 技术博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690513.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号