Связывание с отладкой / выпуском lib с помощью qmake/Qt Creator
Я использую Qt Creator и у меня есть проект Qt GUI, который зависит от проекта статической библиотеки C++. Я хочу связать выпускную версию приложения с графическим интерфейсом с сборкой выпуска.lib и отладочную версию приложения с графическим интерфейсом с отладкой.lib. Я узнал, как добавить дополнительные библиотеки в проект, добавив следующую строку в мой файл.pro:
LIBS += -L./libfolder -lmylib.lib
Но я не могу понять, как я могу использовать другой -L
Команда для выпуска и отладки.
Есть ли поддержка в qmake для этого?
2 ответа
В вашем файле проекта вы можете сделать что-то вроде этого
debug {
LIBS += -L./libfolder -lmydebuglib.lib
}
release {
LIBS += -L./libfolder -lmyreleaselib.lib
}
Бит внутри фигурных скобок используется, если DEBUG был добавлен в переменную qmake CONFIG, аналогично, содержимое внутри скобок освобождения включено, если RELEASE был добавлен в переменную CONFIG.
Вы также можете использовать "! Debug" вместо "release" (т. Е. Когда отладка отсутствует в конфигурации)
Вы можете найти больше информации о qmake здесь.
Нормальный
debug:LIBS += ...
else:LIBS += ...
решение ломается, когда пользователи наивно используют CONFIG += debug
или же CONFIG += release
переключаться между сборками отладки и выпуска (и они делают; никто не помнит, чтобы сказать CONFIG -= release release_and_debug
до CONFIG += debug
:).
Это канонический способ охвата debug
:
CONFIG( debug, debug|release ) {
# debug
QMAKE_LIBDIR += "path/to/debug/lib"
} else {
# release
QMAKE_LIBDIR += "path/to/release/lib"
}
Ср Qmake Docs.
РЕДАКТИРОВАТЬ 2013-11-17: не использовать -Lfoo
в LIBS
, Канонический способ состоит в том, чтобы добавить пути (без -L
) чтобы QMAKE_LIBDIR
,