[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
1、启动QtCreator软件,新建一个名为“QTestLib1”的控制台应用程序项目;
2、项目创建完毕后,调试运行程序。能够见到弹出控制台窗口,表示项目正常;
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/460fdc8333bf3bef769a670b3f3ea8db564a1a68.jpg)
3、打开QTestLib1的项目目录,新建一个名为“include”的新目录,然后将之前创建过的QStaticLib1静态项目和QSharedLib1动态库项目的头文件拷贝到该目录中;
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/6834ecc4ec9959435dd47f4d95425d6b05d10468.jpg)
5、回到QtCreator中,双击龅歧仲半打开“QTestLib1.pro”文件,通过INCLUDEPATH变量指定项目包含目录,通过LIBS变量指定项目引用的库目录和库文件(注:GCC编译器指定库目录和库文件,需要分别用-L和-l前缀,并且要求链入文件以lib前缀开头);
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/4759c1dae43b3b8668f478e4185653bbf9207568.jpg)
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/05e24be983aee8d72effd45c6b781431deb66668.jpg)
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/22c4fe36e29147e8b6350ec1b603bbea3f865868.jpg)
8、关闭控制窗口返回到QtCreator中,点击菜单栏上的“工具 > 选项”打开QtCreator的选项配置窗口。在该窗口中,选择“调试器 > GDB”,在“额外的启动命令”中加入“handle SIG32 nostop”命令,然后点击“OK按钮”确定设置;
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/1d735518512c8cf14f721180c384cde34a2c4668.jpg)
9、设置完GDB额外的启动命令后,再次调试运行程序。你会发现程序一切正常了,并没有之前出现的反汇编代码;
![[QtCreator(5)] 加载Qt静态库和动态库[TZZ]](https://exp-picture.cdn.bcebos.com/354e7a781423beb9daeb167130d6e1d06ce8b368.jpg)
10、最后补充一下,这种崩溃问题实际是某些GDB版本自身的问题(处理线程信号时是否自动暂停)。只要告诉GDB遇到SIG32信号时,别停止即可让程序继续执行,并非代码存在问题;