2

找不到指出 QNX 6.5.1 和 6.6.0 之间确切区别的实际发行说明。我知道 Photon 不再受支持。

到目前为止,我已经获得了 SDP 6.6.0,但可能我的软件也需要在 6.5.0 上运行。那么到 6.5.0 的实际向后兼容级别是多少?有人说“6.6 与 6.5 二进制兼容”[ 1 ] - 任何人都可以用官方文件支持这一点吗?

由于 QNX 遵循 POSIX 标准,我认为 API 是相同的,并且确实应该提供向后兼容性。所以为 6.6.0 创建的程序基本上也应该在 6.5.0 上运行,对吧?

4

2 回答 2

5

到目前为止我发现的差异。

  • 使用 SDP 6.6.0 (i486-pc-nto-qnx6.6.0-g++) 并在 QNX 6.5.0 上运行软件:
    • 必须禁用 gcc 堆栈保护器:(qcc .. -fno-stack-protector另请参见此处
    • 当使用dlopen()[ 1 ] 链接共享库时,SDP 6.6.0 将使用libcpp.so.5,而 QNX 6.5.0 仅提供libcpp.so.4

另外:我发现了一个论坛帖子,其中 Ryan Mansfield(我认为是 QNX 编译器首席维护者)说:

尝试让 6.6.0 二进制文件在 6.5.0 上运行时可能遇到的一个问题 [one] 是,一切都是用 构建的-fstack-protector,这依赖于libc的支持。这不在 6.5.0 libc中,而是在 IIRC,添加了 6.5.0SP1。

于 2015-06-10T16:10:40.287 回答
1

您要问的是“向前”兼容性。6.6.0 向后兼容早期版本的 QNX,这意味着在 6.5 或 6.4 上编写的软件将在 6.6 上运行。

如果您需要 sw 在旧系统上运行,最好在该版本级别的操作系统上构建它,并且仍然能够在更高版本的操作系统上部署您的 sw。

于 2015-06-23T02:25:12.867 回答