Как использовать разные стандарты компиляции в QNX Momentics 6.5?

Я пытаюсь собрать приложения для платы разработки Sabre i.MX6, которая работает под управлением ОС QNX. Я использую 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.

1 ответ

Решение

QNX 6.5 и gcc 4.4.2 не поддерживают C++ 11. Посмотрите документы QCC для получения дополнительной информации. Лучшее, что вы получите, - это неполная и экспериментальная поддержка через -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.

Полную информацию о поддержке стандартов gcc C++ можно найти на странице стандартов gcc.

QNX 6.5 не поддерживает C++11 из коробки, так как он использует старый компилятор GNU (gcc 4.4.2). Однако в Центре программного обеспечения QNX есть несколько обновлений для QNX 6.5, которые позволят вам выполнить обновление до GCC 4.8.3, что обеспечит вам довольно приличную поддержку C++11. Вам нужно будет создать учетную запись на веб-сайте QNX, а затем:

  1. Загрузите Binutils 2.24 для вашего хоста (например, win32-binutils-2.24.zip для WIndows) с http://community.qnx.com/sf/frs/do/listReleases/projects.toolchain/frs.binutils.
  2. Загрузите GCC 4.8.3 для своего хоста (например, win32-gcc-4.8.3-qnx65x.zip для Windows) с http://community.qnx.com/sf/frs/do/viewRelease/projects.toolchain/frs.gcc.gcc_4_8.
  3. Разверните оба архива - это создаст host а также target папки.
  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.
Другие вопросы по тегам