如何使用宏检测交叉GCC编译器
How to detect Cross GCC compiler using Macros
我发现了这篇非常有趣的文章:C/c++提示:如何使用编译器预定义宏检测编译器名称和版本
是否有可能通过使用宏来检测当前编译器是否为Cross GCC(默认使用Eclipse CDT)?
如果您正在编译例如ARM,则很容易检测,但如果您在ARM上编译ARM或在x86上交叉编译,则无法通过宏检测。
你需要在构建系统中支持这个,并将你的变量传递给编译器
gcc -DIS_CROSSCOMPILING=1
使用这个GCC转储预处理器定义了交叉编译器和系统编译器的检查输出。有很多定义,但是没有关于交叉编译的。
根据这个http://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.htmlAutotools正在执行一些检查
checking whether we are cross compiling... yes
,我希望这个结果可以在gcc中显示。
你也可以运行一些难看的命令来检查一些交叉编译
gcc -march=native -E - < /dev/null
如果交叉编译到不同的体系结构,这个命令会失败,但是如果只是针对不同的操作系统,这个命令不会失败。
是的。#if定义(GNUC)可能是你正在寻找的编译器。如果希望查看是否使用了特定目标,那么可能会有另一个硬件宏。https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
相关文章:
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 初始化迭代器错误 C++ 在 GCC 编译器中
- #pragma(*诊断)当将Clang分析器与GCC编译器混合时
- 为什么 gcc 编译器标志未知?
- 如何使用 GCC 编译器优化创建静态库?
- GCC 编译器是否应该对涉及 [[fallthrough]] 属性的格式错误的C++代码进行诊断?
- 如何在macOS中的旧扩展clang和gcc编译器中初始化数组和向量
- gcc c++编译器中的零大小数组
- 相对于继承的构造函数,gcc 编译器是否还有一个错误?
- template-id 与任何模板声明 GNU gcc 编译器都不匹配
- 关于 PBC 库在 GCC 编译器在 DEV C++ 中使用
- 选择默认的 gcc/g++ 编译器
- GCC编译器,为较低版本的GCC编译应用程序
- 相同的代码在不同的 gcc 编译器中存在巨大的性能差异
- GCC 编译器对类型转换有什么作用?为什么 mac 和 Linux 上的输出不同
- GCC 编译器错误:stl_construct.h、stl_uninitialized.h
- 如何从我的qt应用程序运行gcc编译器?
- GCC 编译器错误:stl_construct.h
- 升级 gcc 编译器/其他修复程序以向后兼容
- GCC 编译器一个字节中有多少位