Результат QMake (makefile) отличается при выполнении из bash вместо QtCreator - PullRequest
0 голосов
/ 10 января 2019

Моя цель - добавить мой проект Qt на сервер сборки Jenkins для ночных сборок. Поэтому я хочу скомпилировать свой проект из командной строки. Я скопировал шаги сборки, расположенные в конфигурации сборки:

 "/opt/fslc-x11/2.5/sysroots/x86_64-fslcsdk-linux/usr/bin/qt5/qmake" "/home/xxxx/repositories/xxx/xxx.pro" -spec linux-oe-g++ && /usr/bin/make qmake_all
 "/usr/bin/make"

Я выполняю эти команды в каталоге сборки. Проблема заключается в команде qmake. Команда qmake генерирует make-файл, но этот make-файл отличается, когда я генерирую его в командной строке, а не в QtCreator. Двоичный результат после make, конечно, очень отличается.

Кажется, что команда qmake из командной строки создает отладочный make-файл вместо релизного make-файла:

 CFLAGS        = -pipe  -02 -pipe -g -feliminate-unused-debug-types --sysroot=.........

Часть -02 -pipe -g -feliminate-unused-debug-types - это единственное, что добавляется, когда я запускаю qmake в командной строке (проверяется с помощью diff).

Я пробовал следующее:

  • Добавлен CONFIG+=release в команду qmake
  • Добавлено CONFIG-=DEBUG в команду qmake

Кроме того, я убедился, что системная среда и эмулятор терминала одинаковы.

Мой вопрос сводится к:

  1. Почему qmake добавляет флаги (отладки) при запуске из командной строки?
  2. Добавляет ли QtCreator больше среды, которую я мог пропустить?

Дайте мне знать, если вам нужна дополнительная информация о настройках или сгенерированном make-файле.

1 Ответ

0 голосов
/ 10 января 2019

Хорошо. Короче говоря, я попытался скомпилировать локальный дистрибутив Linux со стандартным qmake, и моя проблема была решена.

Кажется, что проблема заключается в пользовательском qmake цели (x86_64-fslcsdk-linux). Я не собираюсь уделять больше времени этому вопросу, поэтому не стесняйтесь добавлять более удовлетворительный ответ. Я буду счастлив попробовать это :).

...