Как указать переменную Libs pkgconfig при его генерации qmake?

Я хочу установить строку Libs: через файл qmake .pro и пытаюсь сделать это следующим образом:

LIBS += -ldl

чтобы мой целевой исполняемый файл также был связан с библиотекой dl, потому что моя библиотека, с которой я пытаюсь ее связать, использует dl внутри. Однако это не работает, и qmake вместо этого помещает эту строку в раздел Libs.private, который не передается в командную строку gcc во время компиляции, поэтому я не могу создать исполняемый файл:

Libs.private: -ldl

в то время как я хочу, чтобы это было в строке Libs: следующим образом:

Libs: -lmylibrary -ldl

Я также не могу найти ссылки на переменные QMAKE_PKGCONFIG_* нигде в Интернете, есть ли они?


person Victor Polevoy    schedule 05.09.2018    source источник


Ответы (1)


Используется для создания файлов .pc:

CONFIG += create_pc create_prl no_install_prl

По greping для QMAKE_PKGCONFIG_ я нашел следующее в ~/5.12.0/clang_64/mkspecs/features/qt_module.prf

QMAKE_PKGCONFIG_DESTDIR
QMAKE_PKGCONFIG_LIBDIR
QMAKE_PKGCONFIG_INCDIR
QMAKE_PKGCONFIG_CFLAGS
QMAKE_PKGCONFIG_NAME
QMAKE_PKGCONFIG_FILE
QMAKE_PKGCONFIG_REQUIRES
QMAKE_PKGCONFIG_DESCRIPTION
QMAKE_PKGCONFIG_INSTALL_REPLACE

На справочной странице pkg-config:

Libs.private:
  This line should list any private libraries in use.  
  Private libraries are libraries which are not exposed  through  your library, 
  but are needed in the case of static linking. 
  This differs from Requires.private in that it references 
  libraries that do not have package files installed.

Так что я думаю, пока вы не экспортируете их через свою библиотеку, они окажутся в Libs.private.

person Niclas Larsson    schedule 07.02.2019
comment
Спасибо за вашу попытку, но это не отвечает на вопрос. - person Victor Polevoy; 07.02.2019