【问题标题】:How to specify Libs variable of pkgconfig during its generation by qmake?如何在 qmake 生成过程中指定 pkgconfig 的 Libs 变量?
【发布时间】:2018-09-05 10:55:31
【问题描述】:

我想通过 q​​make .pro 文件设置Libs: 行,我尝试这样做:

LIBS += -ldl

为了使我的目标可执行文件也与dl 库链接,因为我试图将它与内部使用dl 链接。但是,这不起作用,qmake 将此字符串放入Libs.private 部分,而不是在编译期间传递给gcc 命令行,因此我无法生成可执行文件:

Libs.private: -ldl

虽然我希望它像这样在Libs: 行中:

Libs: -lmylibrary -ldl

我在网络上的任何地方也找不到任何对 QMAKE_PKGCONFIG_* 变量的引用,有吗?

【问题讨论】:

    标签: qt qmake pkg-config


    【解决方案1】:

    用于生成.pc文件:

    CONFIG += create_pc create_prl no_install_prl
    

    通过搜索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.
    

    所以我猜只要你不通过你的 lib 导出它们,它们最终会在 Libs.private 中。

    【讨论】:

    • 感谢您的尝试,但这并不能回答问题。
    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2017-11-01
    相关资源
    最近更新 更多