【问题标题】:How do I use different compilation standards in QNX Momentics 6.5?如何在 QNX Momentics 6.5 中使用不同的编译标准?
【发布时间】:2018-12-10 17:37:30
【问题描述】:

我正在尝试为运行 QNX 操作系统的 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 不同。

【问题讨论】:

  • 你能试试-Wc,-std=c11吗?
  • @Ctx 它仍然显示相同的错误。 -Wc 不会导致任何错误。那面旗帜是干什么用的?
  • 专门将参数传递给编译器,但我已经怀疑在这种情况下它是空操作。
  • 哦。谢谢!我不确定是什么问题。
  • 您是否修改了 Makefile,或编辑了构建属性?对我来说,在 sdp7.0 中它的工作原理。

标签: c gcc qnx qnx-neutrino momentics


【解决方案1】:

QNX 6.5 不支持开箱即用的 C++11,因为它使用的是旧的 GNU 编译器 (gcc 4.4.2)。但是,QNX 软件中心对 QNX 6.5 有几个更新,可以让您更新到 GCC 4.8.3,这将为您提供相当不错的 C++11 支持。 您需要在 QNX 网站上创建一个帐户,然后:

  1. http://community.qnx.com/sf/frs/do/listReleases/projects.toolchain/frs.binutils 下载适用于您主机的 Binutils 2.24(例如,适用于 WINdows 的 win32-binutils-2.24.zip)。
  2. 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)。
  3. 展开两个档案 - 这将创建 hosttarget 文件夹。
  4. 将新文件夹复制并粘贴到 QNX 文件夹中,覆盖文件。
  5. 编辑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。

【讨论】:

    【解决方案2】:

    QNX 6.5 和 gcc 4.4.2 不支持 C++11。请参阅the QCC docs 了解更多信息。 您将获得的最好结果是通过-std=c++0x-std=gun++0x 提供的不完整和实验性支持。

    QNX 6.6 包括 gcc 4.7.3,它具有实验性 C++11 支持,QNX 7.0 使用 gcc 5.4.0 具有完整的 C++11 和 C++14 支持。

    可以在on the gcc standards page 找到 gcc C++ 标准支持的完整详细信息。

    【讨论】:

    • c11怎么样?因为这就是我要找的。​​span>
    • QNX 6.5 不支持...必须至少升级到 6.6。您可能想在 foundry27 上四处挖掘……曾经有一些更新的工具(即使它们是非官方且不受支持的)。
    • 感谢您的信息!但我的项目需要使用运行此特定 QNX 版本的旧设备。
    • 也许 QNX 可以提供帮助,但我对此表示怀疑。如果你真的想要,你可以构建一个更新版本的 gcc 和 libc……这可能需要很多工作。
    猜你喜欢
    • 2018-11-14
    • 2023-03-20
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多