Я пытаюсь создать свой qt-плагин как в режиме отладки, так и в режиме выпуска под ОС Linux (Ubuntu 13.10), но мне кажется, что qmake игнорирует параметр CONFIG + = debug_and_release. Я также пытался использовать CONFIG + = build_all, но это не сработало. Когда я использую те же параметры в Windows, Qt генерирует два выходных файла (например, plugin.a и plugind.a), но в Linux я получаю только один из них. Когда я заставляю QtCreator построить мой проект в противоположном режиме (отладка вместо relesae), он заменяет уже сгенерированный целевой файл тем, который имеет то же имя. Где я ошибся?
Параметр debug_and_release не работал для linux
Ответы (1)
Возможно, проблема в том, что в вашем файле .pro вы должны были установить разные целевые каталоги или разные имена целевых файлов. Я не знаю почему, но похоже, что в Windows имена целевых файлов, сгенерированные в ваших файлах Makefile, разные, а в Linux они не отличаются. Вы можете попробовать изменить либо целевой каталог, либо имя целевого файла для отладочной сборки. Попробуйте либо
CONFIG(release, debug|release) {
TARGET = plugin
} else {
TARGET = plugind
}
or
CONFIG(release, debug|release) {
DESTDIR = release
OBJECTS_DIR = release/.obj
MOC_DIR = release/.moc
RCC_DIR = release/.rcc
UI_DIR = release/.ui
} else {
DESTDIR = debug
OBJECTS_DIR = debug/.obj
MOC_DIR = debug/.moc
RCC_DIR = debug/.rcc
UI_DIR = debug/.ui
}
person
Bill
schedule
06.02.2014
Нет, к сожалению, это не решает мою проблему. У меня действительно есть 2 OBJECTS_DIR / MOC_DIR / RCC_DIR (один для отладки и один для выпуска), но создается только один целевой файл.
- person Mikhail Zimka; 06.02.2014
@MikhailZimka Вы добавили и
debug_and_release
, и build_all
в CONFIG
одновременно? Если я добавлю только debug_and_release
, тогда make
построит проект только в режиме выпуска. Но если я добавлю debug_and_release
и build_all
, тогда make
сначала построит мой крошечный образец проекта в release
, затем в debug
режиме, и будут созданы обе цели.
- person Bill; 07.02.2014
make debug
иmake release
? - person vahancho   schedule 05.02.2014qmake
, вы получите как отладочную, так и выпускную сборки. - person vahancho   schedule 05.02.2014message($${CONFIG})
в конец вашего файла .pro, запустите qmake, затем скопируйте вывод message () сюда, чтобы мы могли видеть содержимое вашей переменной CONFIG. - person Bill   schedule 05.02.2014Project MESSAGE: lex yacc warn_on debug uic resources qt warn_on release incremental link_prl gdb_dwarf_index shared def_files_disabled exceptions no_mocdepend release stl qt_no_framework plugin static build_all
- person Mikhail Zimka   schedule 05.02.2014release
дважды,debug
один раз, но не вижуdebug_and_release
. qmake не «игнорирует»debug_and_release
, он просто не находит его среди значений переменной CONFIG! - person Bill   schedule 05.02.2014build_all
, вот сообщение дляdebug_and_release
:Project MESSAGE: lex yacc warn_on debug uic resources qt warn_on release incremental link_prl gdb_dwarf_index shared def_files_disabled exceptions no_mocdepend release stl qt_no_framework unix release ReleaseBuild Release build_pass plugin static debug_and_release
. Результат тот же - person Mikhail Zimka   schedule 05.02.2014