我正在尝试为运行QNX OS的Saber i.MX6开发板构建应用程序。我正在使用QNX Momentics v6.5交叉编译我的代码。我编写了一个简单的“ Hello World”代码,由于我正在从事的项目需要这样做,因此我尝试使用新的c标准对其进行编译。
当我尝试使用任何标志进行编译时,例如说-std=c99
或-std=c11
,它会在编译过程中抛出错误
cc: unknown Option -std=c99" or "cc: unknown Option -std=c11"
。
我可以看到它正在使用的编译器是gcc 4.4.2
。
我不确定此版本的gcc
是否不支持c99
或QNX Momentics是否应该传递我所传递的标志。
答案 0 :(得分:0)
QNX 6.5和gcc 4.4.2不支持C ++ 11。有关更多信息,请参见the QCC docs。
您将获得的最好结果是通过-std=c++0x
或-std=gun++0x
的不完整和实验性支持。
QNX 6.6包含确实具有实验性C ++ 11支持的gcc 4.7.3,而QNX 7.0使用gcc 5.4.0具有完整的C ++ 11和C ++ 14支持。
有关gcc C ++标准支持的详细信息,请参见on the gcc standards page。
答案 1 :(得分:0)
QNX 6.5不使用现成的C ++ 11,因为它使用的是旧的GNU编译器(gcc 4.4.2)。但是,QNX软件中心对QNX 6.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。