Qt - QMAKE_LIBDIR против LIBS
Можно найти множество примеров, где QMAKE_LIBDIR используется для указания дополнительных библиотечных каталогов.
Руководство по Qt гласит:
QMAKE_LIBDIR
Определяет список путей к системной библиотеке. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко нуждается в изменении.
До сих пор я всегда использовал "unix: -L$$(LIB_DIR) -l" или подобное, когда я хотел использовать внешнюю библиотеку в одном из моих проектов и не хотел использовать мастер библиотек.
Могу ли я сделать вывод, что указывать путь через -L не рекомендуется, даже если в руководстве нет соответствующего утверждения? (Согласно этому посту это не рекомендуется - но почему?)
Заранее спасибо.
2 ответа
В некотором смысле есть соответствующее утверждение. Положить ваши -Lpath/to/dir
в LIBS
переменная:
http://doc.qt.io/qt-5/qmake-variable-reference.html
ЛИЭС
Определяет список библиотек, которые будут связаны в проекте. Если вы используете флаги Unix -l (библиотека) и -L (путь к библиотеке), qmake правильно обрабатывает библиотеки в Windows (то есть передает полный путь к библиотеке компоновщику). Библиотека должна существовать для qmake, чтобы найти каталог, в котором находится -l lib.
Например:
unix: LIBS + = -L / usr / local / lib -lmath
win32: LIBS + = c: /mylibs/math.lib
Итак, используя -L
в LIBS
фактически поощряется документами Qt
Вы можете установить QMAKE_LIBDIR
внешне без редактирования *.pro
файл в отличие от LIBS
:
qmake QMAKE_LIBDIR=~/build/obj/