如何将共享库添加到qtCreator

how to add shared library to QtCreator

本文关键字:添加 qtCreator 共享      更新时间:2023-10-16

我有一个项目,涉及使用两个库。我试图将库添加到.pro文件中,但是当我编译时,我会收到"找不到-lmylib1"。

INCLUDEPATH += ./lib/mylib1 
               ./lib/mylib2
LIBS += -L"$$_PRO_FILE_PWD_/lib/mylib1" -lmylib1 
        -L"$$_PRO_FILE_PWD_/lib/mylib2" -lmylib2

目录结构如下。

Myproject.pro
lib (directory)
     mylib1 (directory)
         mylib1.so
     mylib2 (directory)
         mylib2.so

要完成@Dave注释,不仅QT Creator仅搜索具有名称" lib*.so"的文件。这是类似于Unix的系统上链接器的默认行为。

引用 ld 链接器的文档:

-larchive

[...] LD将搜索其路径列表 libarchive.a 的出现。在系统上 支持共享库的哪些,LD也可以搜索与 超过.a以外的扩展。具体而言,在Elf和Sunos Systems,LD上 将在目录中搜索以.so扩展为.so的库 搜索一个以.a的扩展为.a。按照惯例,一个.so 扩展名表示共享库。[...]这种类型的存档搜索是UNIX链接器的标准。

因此,如果您的库与lib*.alib*.so模式不匹配,则可以预期QT创建者和链接器都找不到它。