是否存在指示QNX SDP 6/7差异的预处理器变量?



我们有一些最初为QNX SDP 6.6开发的代码,我们正在将其移植到QNX SDP 7.0(7.1还没有我们需要的主板支持包)。

作为移植工作的一部分,我们正在寻找7.1中删除的东西,例如检索进程优先级的getprio()。现在我知道需要用什么来替换,但是,为了对代码库的影响最小,我去寻找一个预处理器变量来指示我是用SDP 7.0还是更早的东西编译。

这样,我可以简单地使用#ifdef来选择要编译的代码,沿着__STDC_VERSION__的行来找出适用于哪个ISO迭代。

然而,我在QNX文档中找不到任何相关的内容。我找到了__QNX____QNXNTO__,它们一起让我弄清楚它是非QNX、QNX 4还是QNX中微子,但似乎没有发现QNX 6和7之间的差异。

有这样的野兽可用吗?

似乎有一个预处理宏。

具体来说,您包含QNX 6.6或7.0的<sys/neutrino.h>,或QNX 7.1的<sys/nto_version.h>。我无法接触到其他人,但我希望这个计划能继续下去。

你可以测试_NTO_VERSION,它被定义为VRR,其中V是主版本,RR是修订版本。

以下文字记录显示了相关的头文件内容:

Cmd> cd ~/qnx_inst
Cmd> rgrep '#define _NTO_VERSION' | grep -v 'Binary file'
qnx660/target/qnx6/usr/include/sys/neutrino.h:#define _NTO_VERSION  660     /* version number * 100 */
qnx700/target/qnx7/usr/include/sys/neutrino.h:#define _NTO_VERSION  700     /* version number * 100 */
qnx710/target/qnx7/usr/include/sys/nto_version.h:#define _NTO_VERSION       710     /* version number * 100 */

相关内容

  • 没有找到相关文章

最新更新