0
点赞
收藏
分享

微信扫一扫

2024年网络安全进阶手册:三个月黑客技术自学路线

小贴贴纸happy 2024-11-01 阅读 17

最近在工程项目中,遇到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。

举报

相关推荐

0 条评论