如何将共享库添加到QtCreator

时间:2018-12-21 11:48:01

标签: c++ qt

我有一个涉及使用两个库的项目。我试图将要包含的库添加到我的.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

1 个答案:

答案 0 :(得分:1)

要完成@dave注释,不仅Qt Creator仅搜索名称为“ lib * .so”的文件。这是类UNIX系统上链接器的默认行为。

引用 ld 链接程序的文档:

  

-larchive

     

[...] ld将在其路径列表中搜索   指定的每个存档出现 libarchive.a 的次数。在系统上   支持共享库的ld可能还会搜索带有   .a以外的扩展名。具体来说,在ELF和SunOS系统上,ld   将在目录中搜索扩展名为.so的库   搜索一个扩展名为.a的文件。按照惯例,.so   扩展名表示共享库。 [...]这种类型的档案搜索是Unix链接器的标准功能。

因此,如果您的库与lib*.alib*.so模式不匹配,则预计Qt Creator和链接器都找不到它。