在 Qt 中使用外部库(libarchive) - 没有 .lib 文件

Posted

技术标签:

【中文标题】在 Qt 中使用外部库(libarchive) - 没有 .lib 文件【英文标题】:Using External Library (libarchive) in Qt - No .lib file 【发布时间】:2011-12-02 08:30:02 【问题描述】:

我已经按照构建说明在 Linux 和 Windows 上构建了 libarchive。

基本上我有一些 .a 文件和一个 dll,但没有 .lib 文件。我想将我的 Qt 项目链接到这个库,但是我看到的所有示例都需要一个 .lib 文件,但似乎没有。

这是我的 .pro 包含的内容:

LIBS += -L$$PWD/libarchive/lib/ -llibarchive

INCLUDEPATH += $$PWD/libarchive/include
DEPENDPATH += $$PWD/libarchive/include

我的代码是:

#include <QtGui/QApplication>
#include <archive.h>
#include <archive_entry.h>

int main(int argc, char *argv[]) 
    QApplication app(argc, argv);

    struct archive *a;
    a = archive_read_new();

    return app.exec();

找到了标头,构建了项目,但我一尝试运行它就死掉了。

【问题讨论】:

【参考方案1】:

我发现问题在于可执行文件未能找到关联的 .dll 文件。可以通过将 libarchive.dll 文件与可执行文件放在同一目录中来修复它,并且非常高兴:-)

【讨论】:

【参考方案2】:

其实LIBS += -L$$PWD/libarchive/lib/ -llibarchive应该是LIBS += -L$$PWD/libarchive/lib/ -larchive

【讨论】:

以上是关于在 Qt 中使用外部库(libarchive) - 没有 .lib 文件的主要内容,如果未能解决你的问题,请参考以下文章

C ++跨平台归档操作/显示

QT使用外部库

CMake-构建静态库的困难

如何将外部库添加到 QT?

如何在多 abi QT 构建中引用外部库

Qt 外部库包括内部自定义库