Способы переключения между версиями компиляторa
В состав Комплекта разработчика могут входить компиляторы различных версий (например, в состав КР редакции 2018 года входят компиляторы GCC версий 4.8.3
и 5.5.0
). Существуют различные способы выбора активной версии компилятора (как для индивидуального проекта, так и глобально, т.е. для всех проектов по умолчанию)
Выбор локальной версии (т.е. для индивидуального проекта) может осуществляться как с помощью графического интерфейса, так и с помощью конфигурационных файлов, а также переменных окружения и переменных среды GNU Make.
Применимость: среда разработки QNX Momentics IDE; только для проектов типа "QNX C/C++ Project" (в Momentics 7: "QNX Legacy Recursive Make Project").
Механизм: Свойства проекта (Alt+Enter) -> раздел "QNX C/C++ Project" -> закладка Compiler -> раздел "General options" -> выбрать компилятор из списка доступных.
При явном задании версии компилятора в свойствах проекта (кроме значения "Default") в файл common.mk будет автоматически добавлена соответствующая запись (установка значения переменной GCC_VERSION):
Соответственно, при необходимости значение данной переменной можно редактировать непосредственно в файле common.mk. |
Применимость: только для проектов типа "QNX C/C++ Project" (в Momentics 7: "QNX Legacy Recursive Make Project").
Механизм: поскольку для управления версией компилятора в данном типе проектов фактически используется внутренняя переменная GCC_VERSION, её значение может быть задано как с помощью графического интерфейса (см. пункт "Через настройки компилятора в свойствах проектов"), так и вручную при сборке проекта в режиме командной строки. Пример:
$ make GCC_VERSION=8.3.0 CPULIST=x86 all
Применимость: для проектов типа QNX Executable / QNX Library, а также других проектов, поддерживающих переопределение переменных CC и CXX "на лету": "чистые" Makefile-проекты, (возможно) проекты Autoconf и т.д.
Механизм: необходимо явно задать значение переменной CC (для C-проектов) или CXX (для C++-проектов) непосредственно в файле Makefile или при вызове команды make. При использования qcc/kcc в качестве драйвера компиляции необходимо использовать опцию -V<версия,> согласно правилам использования данной утилиты. При использовании инструментов gcc/g++ напрямую (или через nto-псевдонимы вида nto<архитектура>-gcc / nto<архитектура>-g++ ) необходимо добавлять суффикс -<версия> к именам исполняемых файлов. Примеры: Для проектов QNX Executable/QNX Library (используется драйвер компиляции qcc):
#Compiler definitions#CC = qcc -Vgcc_nto$(PLATFORM)#CXX = qcc -lang-c++ -Vgcc_nto$(PLATFORM)CC = qcc -V8.3.0,gcc_nto$(PLATFORM)LD = qcc -lang-c++ -V8.3.0,gcc_nto$(PLATFORM)
или (с явным заданием платформы без использования селектора $(PLATFORM))
#Compiler definitions#CC = qcc -Vgcc_nto$(PLATFORM)#CXX = qcc -lang-c++ -Vgcc_nto$(PLATFORM)CC = i486-pc-nto-qnx6.5.0-gcc-8.3.0CXX = i486-pc-nto-qnx6.5.0-g++-8.3.0
При работе в командной строке:
$ make CC=ntoppc-gcc-8.3.0 install
или
$ make CXX=arm-unknown-nto-qnx6.5.0eabi-g++-4.8.3 all
Выбор глобальной версии осуществляется с помощью утилиты switch_devtools.
Предыдущий раздел: Тематические статьи