自学内容网 自学内容网

Qt 静态库链接问题

最近在工程项目中,遇到qt在使用静态库时,总是不能链接的问题。不是只有一个静态库,而是多个静态库,嵌套依赖,不是单层结构。操作系统为某麒麟系统。比如静态库名称为MyLib,那么在MyLib的pro文件中应该加入下列一行,同时修改导出宏为空

CONFIG += staticlib 
DEFINES+= INSIDE_MYLIB

同时应该在某个头文件中定义

#ifdef MYLIB_STATIC
#define MYLIB_EXPORT 
#else
///...动态库导出定义
#endif

在使用静态库的app或则dll工程中增加如下代码行:

LIBS+=-L$$XXX/XXX  -lMyLib

PRE_TARGETDEPS+=$$XXX/XXX/libMyLib.a

原则上觉得上述代码可行,可是当静态库层次较多时,就是链接错误,怀疑过依赖顺序。问题是同样的代码和配置方式,windows就可以顺利编译,某麒麟就是不行。最终定位到:pro文件少了一个关键。在静态库pro文件中增加如下定义:

CONFIG+=create_prl

在调用静态库的app或dll的pro文件中增加如下定义:

CONFIG+=link_prl

至此完美解决问题。我自己因为只想生产一个app,因此只在app中增加了link_prl。


原文地址:https://blog.csdn.net/qiukongjian/article/details/142992293

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!