大小端相关编译选项
编译器控制
使用命令
gcc -E -dM - </dev/null
导出gcc编译器的所有编译选项,在其中搜索大小端相关宏
[root@localhost ~]# gcc -E -dM - </dev/null | grep -i endian
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_PDP_ENDIAN__ 3412
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
头文件控制
定义头文件为endian.h
[root@localhost ~]# grep -inr endian /usr/include/bits/endian.h
19:#ifndef _ENDIAN_H
20:# error "Never use <bits/endian.h> directly; include <endian.h> instead."
23:/* AArch64 can be either big or little endian. */
25:# define __BYTE_ORDER __BIG_ENDIAN
27:# define __BYTE_ORDER __LITTLE_ENDIAN
宏定义排查位置
- Makefile 通过-D
- 编译选项 同上
- 编译器的预制宏
- 头文件