Qt не создает выходные файлы в папках отладки/релиза в Linux

Когда я создаю приложения Qt в Ubuntu, выходные файлы помещаются в основную папку решения, а не в папки выпуска/отладки, как в Windows.

Это проблематично, потому что иногда выходные файлы необходимо запускать как часть процесса сборки (например, для запуска модульных тестов).

У меня есть идея, что это как-то связано с файлами qmake.conf, но я не уверен, что с этим делать.

Итак, мои вопросы:

  1. Почему существует эта разница (может быть, это только я?)
  2. Как мне убедиться, что мои приложения будут корректно создаваться как в Windows, так и в Ubuntu?

person CiscoIPPhone    schedule 19.08.2009    source источник


Ответы (2)


Я предполагаю, что вы используете qmake для фактического построения. Вы можете отредактировать файлы проекта, чтобы поместить вывод в разные каталоги, например:

# only for unix:
unix {
    # in debug mode...
    CONFIG(debug, debug|release) {
        DESTDIR = debug
    }
    else {
        DESTDIR = release
    }
}

Очевидно, чтобы это работало, вам нужно создавать исполняемые файлы как для отладки, так и для выпуска. Дополнительную информацию по этой теме можно найти по адресу здесь

Ваше здоровье

person Thomi    schedule 19.08.2009
comment
Это работало для OSX также с Mac в качестве условия. В OSX папка YourProgram.app будет помещена непосредственно в каталог отладки или выпуска, а фактический исполняемый файл будет помещен на пару уровней ниже, в YourProgram.app/Contents/MacOS. - person Jan Hettich; 05.03.2011

Переменная CONFIG имеет значения debug_and_release и debug_and_release_target в Windows, но не в Linux. Таким образом, следующая строка гарантирует, что ваша сборка будет одинаковой для Linux и Windows:

CONFIG *= debug_and_release debug_and_release_target

Об этом кратко упоминается в документации. Файл /usr/share/qt4/mkspecs/win32-g++/qmake.conf добавляет его к CONFIG.

person bcmpinc    schedule 30.12.2010
comment
Завтра собираюсь протестировать это. Я надеюсь, что это избавит от избыточных папок отладки/выпуска в окнах. - person Edwin Rodríguez; 25.09.2015