Подтвердить что ты не робот

Как добавить предварительную обработку defs (макросов) в qt-creator?

В Eclipse есть опция указать pre processing определяет (#ifdef macros) проект, используя опцию "Символы" в "Контуры и символы". Это помогает эффективно индексировать код, который является кросс-платформой. Есть ли возможность предоставить их в Qt-создателе?

4b9b3361

Ответ 1

Из Документация QT:

Определения задаются в файле .config. Файл .config является регулярный файл С++, добавленный ко всем исходным файлам, когда они разобран. Используйте файл .config только для добавления строк, как в примере ниже:

#define NAME value

То есть, если вы импортируете проект с именем MyProject, то определения pre-processor должны быть указаны в MyProject.config

В моих проектах это приводит к тому, что индексирующее устройство распознает этот общий проект и изменяет автозаполнение, чтобы отразить это.

Ответ 2

Это зависит: -)

Предполагается, что вы используете проекты на основе qmake:

Сначала вы можете добавить DEFINES += SOME_DEFINE=value в ваш .pro файл. Это происходит внутри создателя и при построении командной строки, а также при создании проекта MSVC или XCode из файла .pro.

Затем вы можете добавить DEFINES += SOME_DEFINE=value к вызову qmake, который Qt Creator будет выдавать при настройке проекта. Это происходит в режиме проекта, настройках сборки, шагах QMake.

Наконец, вы можете поместить #define SOME_DEFINE значение залога в файл заголовка и включить его. Это работает для всех видов проектов: -)

Ответ 3

Я хотел указать строку #define в файле .pro, но мой код оказался в содержимом строки без кавычек. Мне нужно было избежать кавычек, а затем избежать побегов, чтобы получить одну пару котировок до конца моего кода. Это связано с тем, что qmake удаляет один набор экранов и некоторые кавычки, тогда командная строка удаляет остальные. Это сработало для меня:

DEFINES += "VERSION=\"\\\"0.1.0\\\"\""

В Windows эта строка VERSION затем может быть использована в файле .rc для создания материала версии, где Windows хочет его, а также в коде для меню "About".

Ответ 4

В настройках проекта в QtCreator вы можете определить некоторые ПРЕДПОСЫЛКИ. У меня здесь нет QtCreator, но я помню, что есть вкладка для конфигурации проекта.

Ответ 5

Я думаю, что исходные ответы хороши, но они требуют, чтобы вы управляли своей конфигурацией вручную, тогда как есть способы разрешить IDE управлять этим для вас автоматически на основе того, выбрана ли у вас конфигурация релиза или отладки.

Этот бит может быть избыточным, но учтите, что это будет работать для вас, только если вы используете IDE для создания. Очевидно, что если это не так, вам понадобится другое решение.

Действия

Так как картинки стоят тысячи слов, вот пример того, как вы определяете макрос отладки для своей сборки отладки с помощью Qt Creator 4.3.1:

  • Убедитесь, что вы выбрали конфигурацию Отладка;

Запустить конфигурации

  1. Перейдите в раздел Проекты в меню слева;
  2. Перейдите в раздел Построить

Проекты > > Build

  1. В разделе Шаги сборки найдите поле ввода Дополнительные аргументы;
  2. Введите свои макроопределения (например, DEBUG для вашего #ifdef DEBUG в коде, в моем случае это __CTS_DEBUG__)

Дополнительные аргументы

Теперь макрос будет определен только при использовании вашей конфигурации отладки; когда вы выбираете конфигурацию Release (см. шаг 1), она автоматически станет undefined, и ваш условно-скомпилированный код отладки будет удален, как показано на рисунках ниже, и это то, что вы всегда хотел.

Результаты

С выбранной конфигурацией отладки

Конфигурация отладки

С выбранной конфигурацией релиза:

Конфигурация выпуска