我需要将已经支持 Linux/Mac 的 c/c++ 代码库移植到 VxWorks。我对 VxWorks 很陌生。你能告诉我可能出现的问题是什么吗?
最佳答案
我们最近进行了相反的转换——我们将代码从运行 VxWorks 的 PowerPC 机器移植到运行 Linux 的 Intel 系统。就操作系统之间的差异而言,我不记得遇到过很多障碍。显然,任何对特定于操作系统的 API 的调用都必须更改,而且我们没有广泛使用这些功能。
我们最大的问题不是操作系统之间的差异,而是 PowerPC 和 Intel 硬件之间的差异。 PowerPC 是 Big Endian 而 Intel 是 Little Endian。我们的软件是用 C 语言编写的,并且对字节顺序做了很多假设,要让它再次顺利运行绝对是一场噩梦。确实有数百个定义位域的结构,需要重新排序才能正常工作。我们最终在 GCC 中实现了一个 #pragma,它在定义时反转了这些位域 (#pragma reverse_bitfields)。
关于c++ - 将 c/c++ 代码移植到 VxWorks 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972007/