我们有一些最初为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 */