Как использовать разные стандарты компиляции в 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, а затем:
- Загрузите Binutils 2.24 для вашего хоста (например, win32-binutils-2.24.zip для WIndows) с http://community.qnx.com/sf/frs/do/listReleases/projects.toolchain/frs.binutils.
- Загрузите 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.
- Разверните оба архива - это создаст
host
а такжеtarget
папки. - Копируйте и вставляйте новые папки в папку QNX, перезаписывайте файлы.
- редактировать
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.