用于区分arm-none-eabi-gcc和gcc的预定义宏

时间:2017-04-07 21:07:26

标签: c linux gcc macros arm

我正在构建自己的库,它应该可以在arm mbed和linux平台上运行。如果目标是ARM mbed,那么库需要与arm-none-eabi-gcc交叉编译,而如果目标平台是linux,则需要使用gcc编译库。是否有预定义的编译器宏,允许我确定调用哪个编译器来编译库?请注意,Raspberry Pi当中 还需要支持ARM CPU,因此我不能使用任何arch宏。

2 个答案:

答案 0 :(得分:0)

根据评论和此链接https://gcc.gnu.org/onlinedocs/cpp/System-specific-Predefined-Macros.html#System-specific-Predefined-Macros的建议,宏__unix__将由gcc定义,但不会由arm-none-eabi-gcc定义。如果有人有更好的答案,请发布。

答案 1 :(得分:0)

根据ARM Compiler Toolchain Reference,宏__arm__始终是为ARM编译器arm-none-eabi-gcc定义的。