TestBigEndian¶
已弃用,自版本 3.20 起: 已被 CMAKE_<LANG>_BYTE_ORDER 变量取代。
此模块提供了一个命令来检查目标架构的字节序(byte order)。
在 CMake 项目中加载此模块,使用
include(TestBigEndian)
命令¶
此模块提供以下命令
- test_big_endian¶
检查目标架构是大端还是小端
test_big_endian(<var>)
此命令会将 1 或 0 存储在变量
<var>中,指示目标架构是大端还是小端。使用此命令时,CMake 项目中至少必须启用一种支持的语言。
支持的语言是
C,CXX。自版本 3.20 起已更改: 此命令现在主要是
CMAKE_<LANG>_BYTE_ORDER的包装器,其中还支持OBJC,OBJCXX和CUDA语言。
示例¶
示例:检查字节序¶
使用此模块检查目标架构的字节序,并将结果存储在 CMake 变量 WORDS_BIGENDIAN 中。
include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)
示例:检查新代码中的字节序¶
从 CMake 3.20 开始,此模块应被 CMAKE_<LANG>_BYTE_ORDER 变量替换。例如,在一个项目中,如果 C 语言是启用的语言之一:
if(CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN")
set(WORDS_BIGENDIAN TRUE)
elseif(CMAKE_C_BYTE_ORDER STREQUAL "LITTLE_ENDIAN")
set(WORDS_BIGENDIAN FALSE)
else()
set(WORDS_BIGENDIAN FALSE)
message(WARNING "Endianness could not be determined.")
endif()