如何为ARM平台构建包含gcc g ++工具链的os映像?

时间:2013-11-01 03:29:33

标签: qnx qnx-neutrino qnx-ifs

我正在尝试为TI OMAP4 Pandaboard构建操作系统映像。下载的BSP可以构建,但是没有gcc g ++编译器就非常有限。我认为在QNX Momentics IDE中添加工具链非常困难,因为要添加的文件太多了。我可以手动修改构建文件来执行此操作吗?如果可能的话,请举个例子。提前谢谢。

2 个答案:

答案 0 :(得分:2)

不,不可能在TI OMAP4 Pandaboard上运行g ++(除非您使用在X86平台上运行的现有QNX工具链从ARM平台的源代码构建g ++)。

为什么不可能:QNX仅为基于X86的主机发布其构建工具。当前支持的主机操作系统包括Windows,Linux和QNX的一些变体,但前提条件是主机硬件是基于X86的。

可能你实际上并不想在目标硬件上构建你的库;在你实际构建的地方并不重要(除非在非常特殊的情况下你根据用户输入构建一些源代码等)。

您需要做的是使用ARM工具链在开发主机上构建库(如果您想使用高级工具,请使用QCC;如果您想使用熟悉的g ++接口,请使用ntoarmv7-g ++)。获得二进制文件后,可以将其包含在.ifs文件中。您只需要在.build文件中包含一行,类似于以下示例:

/路径/上/ targetfs / yourbinary = /路径/上/ buildmachine / yourbinary

如果您的构建环境已配置为mkifs找到您的二进制文件,那么您可以省略“path / on / buildmachine”部分。

如果您在/ proc / boot下使用目标二进制文件就可以了,那么您也可以省略“/ path / on / targetfs / part。”

为了便于开发,通常使用FAT文件系统将二进制文件存储在SD卡上会更方便。然后,您只需将二进制文件复制到SD,而无需重建.ifs文件。

最后,一旦您获得经验,您将需要通过CIFS或NFS导出主机文件系统的一部分,并直接从目标安装它。这将节省在每个构建周期中必须复制文件(并且可能重新启动目标)的所有麻烦。但这与你原来的问题相去甚远。

答案 1 :(得分:1)

您正试图让QNX C / C ++编译器在目标板上运行。正确的吗?

如果是这样,您可以安装QNX软件开发平台,而不是安装Runtime Kit,而且应该不错。

您也可以使用System Builder来定位tomize your QNX OS,但这比使用QNX SDP更难。

另一个注意事项:QNX使用qcc表示C,QCC表示C ++而不是gcc。他们都使用gcc,但要在QNX上进行编译,请使用qcc代替gcc