C代码过于依赖编译器



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

我希望我的代码独立于编译器(有些制造商提供多个IDE,并使用不同的编译器(。

有什么建议吗?

我的建议:按照POSIX标准编写代码。如果供应商库缺少POSIX,请自己实现一个POSIX层。

让核心操作系统一般不使用#ifdef,并将混乱放在有条件编译的兼容层中。

简单的(尽管实现时间更长(解决方案是而不是依赖于供应商提供的库。写你自己的图书馆。也许这可以通过一点层次感来完成。例如,它们都提供strlen()

最新更新