在QNX系统里编写程序,之后的几个问题.

QNX系统里编写出了程序以后,
编译成了可执行文件后,这个文件放到哪里运行?原来的程序是在QNX系统里运行的,总不出还放到QNX这个大家里运行吧?
如果放到其它介质上运行,应该怎么办呢?

不懂你要问什么,qnx下编译的程序当然要在qnx下运行了,放到其它介质,这个介质上也要装QNX才行呀。

可以放到单片机上运行吗?

AVR,51等?

或者是ARM.

好像是不行吧 基本应该只限制在qnx声明支持的几种主板下可以运行

goodlove2的问题跳得太快:D,通常的“嵌入式开发”是这样的。

  1. 有硬件(板子),有CPU家族。在这上面跑OS,在OS上运行用户程序。

  2. CPU家族不同的话,机器指令不同,二进制程序无法兼容。所有的代码(包括OS)都要重新编译。QNX支持的CPU家族有x86, mips, ppc, sh4 和 arm。也就是说,QNX的所有代码,都有针对不同CPU家族的5套。(同样一个 /bin/ls 就有5个)。

  3. 如果是QNX直接支持的板子,表示QNX公司在这些板子上进行过调试,有一些针对该板子的特殊代码和环境设定。一个板子就有一个BSP(Board Support Package)。如果不是QNX直接支持的板子,用户也有足够的Document,或是从一个相近的板子的BSP出发,自已制作BSP。

  4. 用户在开发机(HOST)上开发自已的程序。最后编译生成目标代码时,就要指定目标机(TARGET)的CPU家族,生成适合该CPU上运行的代码。HOST和TARGET可以是不同的CPU家族,也可以使用不同的操作系统。这个过程叫交叉编译(Cross Compiler)。QNX支持四种HOST, WinXP,Linux,Solaris,和 QNX 自已(SELFHOST)。

  5. 最后,通常为一个OS编译生成的代码,不能在别的OS上运行。因为一个很简单的程序也会要用到内核调用,在别的操作系统上会因为没有那样的内核调用而出错。就象Linux代码不能在Windows上运行的道理一样。为QNX生成的代码也不能在别的系统上运行。当然用源码在别的OS上重新编译,可以生成为那个OS运行的代码,这个过程叫“移植”。

赞一个:)