【问题标题】:How to include external libraries in Qt如何在 Qt 中包含外部库
【发布时间】:2019-11-09 09:26:37
【问题描述】:

我想要一些关于如何在 Linux 环境中将外部库添加到 Qt C++ 项目的基本解释 我以两种方式安装了一个名为 podofo 的库: - 使用 apt-get install libpodofo 安装它 - 安装源代码并构建它

之后我在我的 Qt 项目的 .pro 文件中添加了:LIBS += -lpodofo

我如何选择他是使用第一个还是第二个? 我应该如何在我的项目中添加一个包含大量 .jar 文件的外部库?

我认为它可能是运行环境中的某些东西,但我仍然不明白。我尝试更改它,但在安装 Qt 的文件中手动复制库似乎更好。

【问题讨论】:

    标签: c++ linux qt podofo


    【解决方案1】:

    与 Linux 上的大多数库一样,podofo 安装一个 pkg-config 文件。该文件名为libpodofo-0.pc。 qmake 对此具有内置支持,因此您只需将其添加到项目文件中即可:

    PKGCONFIG += libpodofo-0

    (请注意,要使其正常工作,您可能需要将 link_pkgconfig 添加到您的 CONFIG 行。)

    不要向LIBS 添加任何内容。 qmake 将调用 pkg-config 并自动添加所需的编译器和链接器标志。具体来说,它将为链接添加正确的-l 标志,并为编译添加正确的-I 标志(通常为-I/usr/include/podofo)。因此,当您在代码中包含 podofo 标头时,请不要使用 #include <podofo/podofo.h>。在可能使用不同目录名称安装 podofo 标头的系统上构建时,请使用 #include <podofo.h> 保持代码可移植性。

    请确保 pkg-config 工具确实安装在您的系统上。 pkg-config --version 应该打印类似 0.29.1 的内容。如果找不到该命令,则安装 Linux 发行版的 pkg-config 包。

    【讨论】:

    • 我有编译错误 "undefined reference to PoDoFo::PdfRect... " 我没有找到任何 libpodofo-0.pc。这并没有指定我的代码中将使用哪个版本的podofo吗?
    • 它将使用您安装的版本。您使用的是什么 Linux 发行版?
    • 我使用的是 Ubuntu 18.04.2
    • @MsSkillz007 你安装libpodofo-dev了吗? sudo apt install libpodofo-dev。之后,输入pkg-config --cflags libpodofo-0。它打印什么?
    • @MsSkillz007 podofo 似乎安装了一个损坏的 pkg-config 文件。该库名为libpodofo,但.pc 文件列出了它,其中包含-0。如果您编辑/usr/lib/pkgconfig/libpodofo-0.pc 并在Libs: 行中将`-lpodofo-0` 替换为`-lpodofo`,它应该可以工作。您还应该为此提交错误报告:help.ubuntu.com/community/ReportingBugs
    猜你喜欢
    • 2012-05-18
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多