我正在为运行QNX的Sabre i.MX6开发板构建应用程序。我使用QNXMomenticsV6.5交叉编译我的代码。我编写了一个简单的"Hello“代码,我试图用新的c标准编译它,因为我正在从事的项目需要这样做。
当我试图使用任何标志(例如-std=c99或-std=c11 )进行编译时,它会在编译过程中抛出一个错误
cc: unknown Option -std=c99" or "cc: unknown Option -std=c11"。
我可以看到它使用的编译器是gcc 4.4.2。
我不确定这个版本的gcc是否不支持c99,或者对于QNX术语,我传递的标志是否不同。
发布于 2018-07-16 20:54:45
QNX6.5和gcc 4.4.2不支持C++11。更多信息见QCC文档。通过-std=c++0x或-std=gun++0x获得的最好的支持是不完全的和实验性的支持。
QNX6.6包括gcc 4.7.3,它有实验C++11支持,QNX7.0使用gcc 5.4.0有完整的C++11和C++14支持。
gcc C++标准支持的详细信息可以找到在gcc标准页面上。
发布于 2019-09-11 14:27:44
QNX6.5不支持开箱即用的C++11,因为它使用的是一个旧的GNU编译器(gcc 4.4.2)。然而,QNX软件中心有几个QNX6.5的更新,可以让您更新到GCC 4.8.3,这将得到您相当不错的C++11支持。您需要在QNX网站上创建一个帐户,然后:
host和target文件夹。host/win32/x86/etc/qcc/gcc/default以更改默认编译器:DIR=4.8.3编译时添加以下标志:
-Vgcc_ntox86_gpp到QCC (对于x86目标)获得gcc 4.8.3头。-Wc,-std=c++11到QCC使其使用C++ 11。https://stackoverflow.com/questions/51137067
复制相似问题