Как указать переменную Libs для pkgconfig при генерации qmake? - PullRequest
0 голосов
/ 05 сентября 2018

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

LIBS += -ldl

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

Libs.private: -ldl

пока я хочу, чтобы он был в Libs: строке:

Libs: -lmylibrary -ldl

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

1 Ответ

0 голосов
/ 07 февраля 2019

Используется для генерации файлов .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.

...