我有一些跨平台代码,其中包含一些C++ 11等功能#include
.我很快就会使用QNX 6.6板,我想知道我的代码是否可以在其上编译,以及哪些功能可用.
QCC是官方的QNX C++编译器,但是我找不到任何文档引用C++ 11的功能,或者它支持哪些C++功能.这是GCC或其自身的包装吗?无论哪种方式,我可以在这个平台上获得或编译其他编译器吗?
据我所知qcc
,只是在gcc
内部使用.因此,您可以使用gcc
QNX 版本提供的所有功能,并决定将其放入其包中.
从QNX的发布说明来看,使用6.6 gcc 4.7:
GCC 4.7工具链,包括对英特尔高级矢量扩展指令(AVX)的支持
GDB 7.5
新:Binutils 2.24
Python 2.7.5,作为主机端工具
发行说明提供了有关gcc 4.7的信息的链接,但我认为此链接更好地显示了支持哪些特定功能.链接页面上的信息太多,因为我没有复制它.但实质上链接指出:
GCC为2011 ISO C++标准提供实验支持.可以使用-std = c ++ 11或-std = gnu ++ 11编译器选项启用此支持... GCC的C++ 11模式实现了ISO C++委员会生成的大部分C++ 11标准
而@Marged的回答似乎涵盖你的问题的绝对每一个重要的方面,我想补充的是,还可能得到的所有的GNU开发工具更新的版本(比如GCC,GDB或使 ..).这是由QNX工作人员正式提供的"仅用于实验",我猜1.但到目前为止,我只有很好的经验.
查看QNX更新的核心开发工具
(您需要先注册到QNX社区门户才能打开链接)
然后,您将更新您的Linux开发系统:
从这里获取文件
在Binutils
GCC
将文件解压缩到新文件夹(不要直接提取和覆盖现有文件夹,因为它可能不会更新符号链接)
应该创建host
和target
文件夹
将新文件复制并粘贴到实际的QNX文件夹中并覆盖现有文件
可选:将配置默认文件的值更新为新的编译器版本
例如 /../qnx650/host/linux/x86/etc/qcc/gcc/default
确保安装32位库(如果没有):
$ sudo apt-get install lib32stdc++6
如果安装不正确,可能会发生以下错误
$ i486-pc-nto-qnx6.5.0-g++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
1官方文本:"核心开发工具的稳定版本作为QNX Momentics的一部分包含在内.您可以下载当前通过该项目开发的这些工具的更新版本,并从之前的增强中受益!"