C 代码过于依赖编译器

问题描述 投票:0回答:2

我正在编写一个应该在各种 SoCs 上运行的操作系统(例如:Xilinx Zync、Freescale QorIQ)。 我的问题是,并非所有提供的 IDE(由 Xilinx、Freescale 等提供)都提供相同的库(标准 C 和 POSIX 库)。 例如,CodeWarrior IDE 具有 timespec 结构,而 Xilinx 则没有。 另外,

sleep
在一些提供的库中实现,但我有自己的实现。

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

有什么建议吗?

c posix
2个回答
8
投票

我的建议:按照 POSIX 标准编写代码。如果供应商库无法满足 POSIX,请自行实现 POSIX 层。

让核心操作系统保持

#ifdef
自由,并将混乱放入条件编译的兼容层中。


3
投票

简单(尽管实施时间较长)的解决方案是“不”依赖于供应商提供的库。 编写自己的库。 也许这可以通过一点点分层来完成。 例如,它们都提供 strlen()

    

© www.soinside.com 2019 - 2024. All rights reserved.