C++ 如何将共享库添加到QtCreator
我有一个项目涉及使用两个库。我试图将库添加到我的.pro文件中,但是当我编译时,我收到一个“找不到-lmylib1” 目录结构如下所示C++ 如何将共享库添加到QtCreator,c++,qt,C++,Qt,我有一个项目涉及使用两个库。我试图将库添加到我的.pro文件中,但是当我编译时,我收到一个“找不到-lmylib1” 目录结构如下所示 Myproject.pro lib (directory) mylib1 (directory) mylib1.so mylib2 (directory) mylib2.so 要完成@dave comment,不仅Qt Creator只搜索名为“lib*.so”的文件。这是类UNIX系统上链接器的默认行为
Myproject.pro
lib (directory)
mylib1 (directory)
mylib1.so
mylib2 (directory)
mylib2.so
要完成@dave comment,不仅Qt Creator只搜索名为“lib*.so”的文件。这是类UNIX系统上链接器的默认行为 引用ld链接器的文档:
-larchive
[…]ld将在其路径列表中搜索
对于每个指定的存档,出现libarchive.a。论制度
ld还可以搜索支持共享库的库
a.以外的扩展名。特别是在ELF和SunOS系统上,ld
将在目录中搜索扩展名为.so的库
正在搜索扩展名为.a的。按照惯例,a.那么
扩展名表示共享库。[…]这种类型的存档搜索是Unix链接器的标准配置
因此,如果您的库与
lib*.a
或lib*.So
模式不匹配,则Qt Creator和链接器都无法找到它。您是从QtCreator添加这些库还是手动编辑.pro文件?通常,您可以在项目上单击“添加库”,它会自动在项目文件中插入正确的行,并手动添加这些行。当我尝试使用“add library”添加它时,它不会显示可以添加的文件,因为QtCreator只搜索名为“lib*.so”的文件。所以“mylib1.So”并没有被认可为一个图书馆。谢谢你的努力
Myproject.pro
lib (directory)
mylib1 (directory)
mylib1.so
mylib2 (directory)
mylib2.so