C代码过于依赖于编译器

时间:2014-05-19 17:42:37

标签: c compiler-construction posix

我正在编写一个应该在各种SoCs上运行的操作系统(例如:Xilinx Zync,Freescale QorIQ)。 我的问题,并非所有提供的IDE(由赛灵思,飞思卡尔等提供)都提供相同的库(标准C& POSIX库)。 例如,CodeWarrior IDE具有timespec结构,而Xilinx则没有。 此外,sleep在一些提供的库中实现,但我有自己的实现。

我希望我的代码独立于编译器(某些制造商提供多个IDE和不同的编译器)。

有什么建议吗?

2 个答案:

答案 0 :(得分:8)

我的建议:代码到POSIX标准。如果供应商库缺少POSIX,请自行实现POSIX层。

将核心操作系统保留为#ifdef - 免费,并将其置于有条件编译的兼容层中。

答案 1 :(得分:3)

简单(虽然更长)的解决方案是依赖于供应商提供的库。写你自己的图书馆。可能这可以通过一点点分层来完成。例如,所有这些都提供strlen()