c++ - 将 c/c++ 代码移植到 VxWorks 的问题

标签 c++ vxworks

我需要将已经支持 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/

相关文章:

c++ - Win32 - 为什么没有任何东西被绘制到屏幕上?

c++ - 绘画渲染,剪裁线,我有一个错误

c++ - 将 Libcurl 与 C++ 和 IMAP 协议(protocol)结合使用的 IMAP 命令

C++ - 将 ANSI 编码的文本读取为宽字符串

exit - 退出和注销的区别

c - 使用 VxWorks C 将二进制数据发送到串行端口

c - 为什么我插入队列的数据没有从另一端出来?

c++ - 如何自动矢量化基于范围的 for 循环?

c++ - 重定位值不适合 24 位

c++ - 同一文件中的冲突类型错误?