文章目录
1.问题描述
1.1 需求描述
最近遇到一个需求,基于qt原生部件封装项目所需的基础控件,并在后续相关开发中直接使用封装的基础控件。
我的思路是基于需求封装基础控件预留接口之后将其编译为静态链接库,后续开发若需要则直接导入库文件,省去在相关项目中添加头文件和对应源文件。
1.2 问题分析
按照网上教程,基础控件封装完成之后在相关项目中导入库文件,编码,运行出错,提示封装的基础控件类和相关接口是“未定义的引用”。
思考之后问题可能是两方面: 一是封装存在问题;二是导入库文件步骤存在问题,库文件未被正确封装或者导入。
经测试,封装不存在问题,在项目中直接添加相关头文件和源文件可以成功运行。
网上QtCreator创建动态链接库步骤大同小异,按照步骤封装一个sum类为静态链接库,在其他项目中导入并使用不存在问题,那么问题就只能是界面类未成功编译为静态链接库文件。
假定基于QtCreator创建类为A,A中新建组合控件类为B,按照步骤只是将A创建为静态链接库,在其他项目中导入A的静态库文件,对B进行使用时肯定会报错。
经查阅资料,创建A为静态库文件时,将B也创建为静态链接库的关键在于**参考该篇博客**。
整体流程的大部分步骤网上都有教程,在此对基于QtCreator封装带有ui界面的静态链接库进行总结。