【发布时间】:2017-04-07 21:07:26
【问题描述】:
我正在构建自己的库,它应该可以在 arm mbed 和 linux 平台上工作。如果目标是 ARM mbed,则库需要使用arm-none-eabi-gcc 进行交叉编译,而如果目标平台是 linux,则需要使用 gcc 编译库。是否有预定义的编译器宏可以让我确定调用哪个编译器来编译库?请注意,树莓派
有一个 ARM CPU 也需要支持,所以我不能使用任何拱宏。
【问题讨论】:
-
我已经尝试过这个帖子中的建议,但是有很多宏,需要很长时间才能一一浏览。
-
尝试使用
diff比较两个编译器生成的列表。或看这里:gcc.gnu.org/onlinedocs/cpp/… -
已经尝试过
diff:输出的长度是原来的两倍......但是该链接帮助我找到了可能的答案。似乎__unix__可以工作。谢谢! -
我认为你这样做是为了低音。您应该有一个简单的
configure脚本(在make之前运行)来选择目标架构;或者有一个具有不同目标的 Makefile(所以make mbed编译 ARM mbed 版本,make linux一个通用 Linux 版本,make pi用于 Raspberry Pi,等等);与那些定义了一些预处理器宏的人一起,如果存在代码级差异,您的代码可以使用。