2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况

预备知识1

2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况_第1张图片
armel、armhf和arm64区别选择 https://www.veryarm.com/872.html

预备知识2

2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况_第2张图片
https://www.veryarm.com/872.html
2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况_第3张图片
linaro公司ARMV8架构32/64位gcc

Ubuntu 安装64位arm交叉编译器

sudo apt install -y gcc-aarch64-linux-gnu

liuqun@vmware:~$ sudo apt install gcc-aarch64-linux-gnu
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  binutils-aarch64-linux-gnu cpp-8-aarch64-linux-gnu cpp-aarch64-linux-gnu gcc-8-aarch64-linux-gnu
  gcc-8-aarch64-linux-gnu-base libasan5-arm64-cross libatomic1-arm64-cross libc6-arm64-cross libc6-dev-arm64-cross
  libgcc-8-dev-arm64-cross libgcc1-arm64-cross libgomp1-arm64-cross libitm1-arm64-cross liblsan0-arm64-cross
  libstdc++6-arm64-cross libtsan0-arm64-cross libubsan1-arm64-cross linux-libc-dev-arm64-cross
建议安装:
  binutils-doc gcc-8-locales cpp-doc gcc-8-doc libgcc1-dbg-arm64-cross libgomp1-dbg-arm64-cross
  libitm1-dbg-arm64-cross libatomic1-dbg-arm64-cross libasan5-dbg-arm64-cross liblsan0-dbg-arm64-cross
  libtsan0-dbg-arm64-cross libubsan1-dbg-arm64-cross libmpx2-dbg-arm64-cross libquadmath0-dbg-arm64-cross
  gdb-aarch64-linux-gnu gcc-doc
下列【新】软件包将被安装:
  binutils-aarch64-linux-gnu cpp-8-aarch64-linux-gnu cpp-aarch64-linux-gnu gcc-8-aarch64-linux-gnu
  gcc-8-aarch64-linux-gnu-base gcc-aarch64-linux-gnu libasan5-arm64-cross libatomic1-arm64-cross libc6-arm64-cross
  libc6-dev-arm64-cross libgcc-8-dev-arm64-cross libgcc1-arm64-cross libgomp1-arm64-cross libitm1-arm64-cross
  liblsan0-arm64-cross libstdc++6-arm64-cross libtsan0-arm64-cross libubsan1-arm64-cross linux-libc-dev-arm64-cross
升级了 0 个软件包,新安装了 19 个软件包,要卸载 0 个软件包,有 448 个软件包未被升级。
需要下载 22.8 MB 的归档。
解压缩后会消耗 82.0 MB 的额外空间。
您希望继续执行吗? [Y/n] 

检查gcc内置的define宏定义

echo "" > test.c
aarch64-linux-gnu-gcc -E -dM -c test.c|sort |grep -E "aarch64|ARM|ARM_ARCH"
aarch64-linux-gnu-gcc -E -dM -c test.c | grep -E "STDC_VERSION"
aarch64-linux-gnu-gcc --version
2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况_第4张图片
64位arm交叉编译器

Ubuntu 安装32位arm-linux交叉编译器

sudo apt-get install -y gcc-arm-linux-gnueabihf

检查arm交叉编译器内置的#define常量

echo "" > test.c
arm-linux-gnueabihf-gcc -E -dM -c test.c|sort |grep -E "arm|ARM"
arm-linux-gnueabihf-gcc -E -dM -c test.c | grep -E "STDC_VERSION"
arm-linux-gnueabihf-gcc --version
2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况_第5张图片
image.png

检查X86-64 GCC编译器内置的#define常量

2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况_第6张图片
image.png
echo "" > test.c
gcc -E -dM -c test.c | sort | grep -E "amd64|x86_64|i386"
gcc -E -dM -c test.c | grep -E "STDC_VERSION"

参考资料

版权声明:本文为CSDN博主「alan00000」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/alan00000/article/details/47175063

gcc 预定义宏(x86-64)
打印方法:

echo "" > test.c
gcc -E -dM -c test.c | sort |  tee marco_x86_64.txt

arm-linux-androideabi-gcc 预定义宏(编译器版本4.8)
打印方法:

echo "" > test.c
arm-linux-gnueabihf-gcc -E -dM -c test.c | sort | tee marco_arm.txt

你可能感兴趣的:(2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况)