我正在构建我自己的库,它应该可以在arm mbed和linux平台上工作。如果目标是ARM mbed,则需要使用arm-none-eabi-gcc交叉编译库,而如果目标平台是linux,则需要使用gcc编译库。是否有一个预定义的编译器宏可以让我确定调用了哪个编译器来编译库?请注意,树莓派,它有一个ARM的CPU也需要支持,所以我不能使用任何ARCH宏。
发布于 2017-04-08 05:42:05
正如注释和链接https://gcc.gnu.org/onlinedocs/cpp/System-specific-Predefined-Macros.html#System-specific-Predefined-Macros所建议的,宏__unix__将由gcc定义,而不是由arm-none-eabi-gcc定义。如果有人有更好的答案,请把它贴出来。
发布于 2021-06-11 08:33:17
根据ARM Compiler Toolchain Reference的说法,宏__arm__总是为ARM编译器arm-none-eabi-gcc定义的。
https://stackoverflow.com/questions/43287103
复制相似问题