随着代码量增加,程序编译速度会逐渐降低。像Qt这类含有窗体文件的程序,编译效率下降尤为明显。因此将部分功能独立且含有ui文件的程序编译成动态或者静态库是一个十分不错的选择。在此以测试通过的Demo为例,对VS2013创建和使用Qt动/静态库的过程进行拆解。
一、创建Qt动/静态库
1.将main.cpp文件从编译及测试通过的工程中移出。
2.在“项目->属性->配置属性->常规”中,将“配置类型”修改为“动态库(.dll)”或者“静态库(.lib)”。
3.在“项目->属性->配置属性->链接器->常规”中,将“输出文件”更改为$(OutDir)$(TargetName)$(TargetExt)
。
这一步主要是为了解决TargetPath与Linker的OutputFile属性值不匹配问题。否则会报warning,导致无法正常生成动态库文件。
4.完成上述配置后,点击“生成解决方案”,生成dll文件或者lib文件。Debug和Release模式下生成的文件分别放置在与工程同路径的“x64/Debug”和“x64/Release”文件夹内。
二、使用Qt动/静态库
1.将库文件所依赖的头文件,拷贝到使用工程内。在此以原工程为例,删除对应的cpp文件和ui文件。
2.将创建的库文件拷贝到使用工程内。
3.在“项目->属性->配置属性->链接器->输入”中,将“xxx.lib”添加到“附加依赖项”内。
4.配置完成后,编译运行。
三、注意事项
1.建议将Debug模式下生产的dll文件和lib文件,重命名为“xxxd.dll”和“xxxd.lib”。
2.使用动态库的时候,也需要lib文件。以满足编译应用程序时,知道dll中有哪些接口类和函数。
个人声明:
以上内容,纯属个人观点,不喜勿喷。未经本人同意,不得私自转载。博客中出现的代码仅供学习参考,不得有其他用途。若文中存在纰漏,或读者有更好的建议,欢迎留言探讨。也可邮箱联系:yxyx_0212@163.com