如何在 QNX Momentics 6.5 中使用不同的编译标准?
How do I use different compilation standards in QNX Momentics 6.5?
我正在尝试为运行 QNX OS 的 Sabre 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 不同。
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。
QNX 6.5 不支持开箱即用的 C++11,因为它使用旧的 GNU 编译器 (gcc 4.4.2)。但是,QNX 软件中心对 QNX 6.5 进行了多项更新,您可以更新到 GCC 4.8.3,这将为您提供相当不错的 C++11 支持。
您需要在 QNX 网站上创建一个帐户,然后:
- 从 http://community.qnx.com/sf/frs/do/listReleases/projects.toolchain/frs.binutils.
下载适用于您的主机的 Binutils 2.24(例如 WIndows 的 win32-binutils-2.24.zip)
- 从 http://community.qnx.com/sf/frs/do/viewRelease/projects.toolchain/frs.gcc.gcc_4_8.
下载主机的 GCC 4.8.3(例如 Windows 的 win32-gcc-4.8.3-qnx65x.zip)
- 展开两个存档 - 这将创建
host
和 target
文件夹。
- 将新文件夹复制并粘贴到 QNX 文件夹中,覆盖文件。
- 编辑
host/win32/x86/etc/qcc/gcc/default
以更改默认编译器:DIR=4.8.3
编译时添加以下标志:
-Vgcc_ntox86_gpp
到 QCC(对于 x86 目标)以获得 gcc 4.8.3 headers.
-Wc,-std=c++11
到 QCC 以使其使用 C++ 11。
我正在尝试为运行 QNX OS 的 Sabre 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 不同。
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。
QNX 6.5 不支持开箱即用的 C++11,因为它使用旧的 GNU 编译器 (gcc 4.4.2)。但是,QNX 软件中心对 QNX 6.5 进行了多项更新,您可以更新到 GCC 4.8.3,这将为您提供相当不错的 C++11 支持。 您需要在 QNX 网站上创建一个帐户,然后:
- 从 http://community.qnx.com/sf/frs/do/listReleases/projects.toolchain/frs.binutils. 下载适用于您的主机的 Binutils 2.24(例如 WIndows 的 win32-binutils-2.24.zip)
- 从 http://community.qnx.com/sf/frs/do/viewRelease/projects.toolchain/frs.gcc.gcc_4_8. 下载主机的 GCC 4.8.3(例如 Windows 的 win32-gcc-4.8.3-qnx65x.zip)
- 展开两个存档 - 这将创建
host
和target
文件夹。 - 将新文件夹复制并粘贴到 QNX 文件夹中,覆盖文件。
- 编辑
host/win32/x86/etc/qcc/gcc/default
以更改默认编译器:DIR=4.8.3
编译时添加以下标志:
-Vgcc_ntox86_gpp
到 QCC(对于 x86 目标)以获得 gcc 4.8.3 headers.-Wc,-std=c++11
到 QCC 以使其使用 C++ 11。