确定带有宏的 GCC 编译器
Determine GCC Compiler with Macro
编辑:哈哈,搜索词是一件奇怪的事情。实际上,我不得不使用我得到的答案作为搜索的术语,最终找到这个问题。本着StackOverflow的精神,我将投票关闭我的 将问题作为重复而不是删除它,以防它作为 别人。
我正在编写几个使用 asm
的函数,但我只希望它们在使用可以与 NASM 一起使用的编译器编译时起作用。(顺便说一下,我在C++11。
我对asm
的整个概念有点陌生,但这就是我认为我知道的:
- GCC
- 及其"亲戚"(MinGW,TDM-GCC(使用NASM,这就是我编写函数的目的。
- 所有英特尔和AMD处理器理论上都可以理解NASM,无论操作系统如何,因为...
- X86/X64 汇编程序由编译器实现的内容决定。
假设上述是正确的,我可以使用什么宏来确保我正在编写的函数被定义当且仅当我使用 GCC(或类似(编译器或使用 NASM 的编译器时? (#ELSE
将是函数的可用虚拟版本,以确保与其他编译器的一般兼容性。
我所知道的唯一此类宏与确定操作系统(例如#IFDEF _WIN32
(有关,但是在我在Windows上使用TDM-GCC或MinGW进行编译的情况下,该宏会错误地使用。
注意:如果有人想知道,有问题的功能基本上是 "有用,但不重要"的实用程序。我们没有任何计划 使用非 GCC 编译器编译,但它是开源代码,所以我们希望 为他人着想。
您可以使用
__GNUC__
宏来识别GCC(以及一些大多数兼容的编译器,如Clang和Intel的C++编译器(。
MinGW(任何版本(可以检查__MINGW32__
和/或__MINGW64__
。
相关文章:
- 如何解决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 编译器一个字节中有多少位