[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

 时间:2024-10-27 18:12:36

1、启动QtCreator软件,新建一个名为“QTestLib1”的控制台应用程序项目;

2、项目创建完毕后,调试运行程序。能够见到弹出控制台窗口,表示项目正常;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

3、打开QTestLib1的项目目录,新建一个名为“include”的新目录,然后将之前创建过的QStaticLib1静态项目和QSharedLib1动态库项目的头文件拷贝到该目录中;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

4、回到“QTestLib1目录”,再次新建一个“lib目录“,然后将静态库项目和动态库项目生成的Debug版静态库和动态库文件拷贝到该目录中;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

5、回到QtCreator中,双击龅歧仲半打开“QTestLib1.pro”文件,通过INCLUDEPATH变量指定项目包含目录,通过LIBS变量指定项目引用的库目录和库文件(注:GCC编译器指定库目录和库文件,需要分别用-L和-l前缀,并且要求链入文件以lib前缀开头);

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

6、双击打开“main.cpp”文件,在该文件中包含静态库和动态库的头文件,然后在main函数中分别实例化QStaticLib1类和QSharedLib1类,然后分别调用它们的sayHello菱诎逭幂方法。代码添加完毕后,编译当前项目,编译输出窗口没有打开错误信息则表示代码正确;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

7、项目编译完毕后,调试运行程序。不幸的是,程序直接“崩溃”了。QtCreator直接给出了反汇编代码,并提示“Stopped : signal-received”。但是,如果此刻继续点击调试工具栏中的“继续按钮”,发现控制台可以正常弹出并输出打印信息;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

8、关闭控制窗口返回到QtCreator中,点击菜单栏上的“工具 > 选项”打开QtCreator的选项配置窗口。在该窗口中,选择“调试器 > GDB”,在“额外的启动命令”中加入“handle SIG32 nostop”命令,然后点击“OK按钮”确定设置;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

9、设置完GDB额外的启动命令后,再次调试运行程序。你会发现程序一切正常了,并没有之前出现的反汇编代码;

[QtCreator(5)] 加载Qt静态库和动态库[TZZ]
[QtCreator(5)] 加载Qt静态库和动态库[TZZ]

10、最后补充一下,这种崩溃问题实际是某些GDB版本自身的问题(处理线程信号时是否自动暂停)。只要告诉GDB遇到SIG32信号时,别停止即可让程序继续执行,并非代码存在问题;

  • Symantec企业版如何设置USB只读不可写功能策略
  • win10系统设置网络参数
  • 如何使用Clover
  • windows7下cmd窗口使用ssh命令
  • u盘启用BitLocker保护
  • 热门搜索
    51手抄报 缅怀先烈手抄报大全 书香校园手抄报内容 清明手抄报资料 杰出人物手抄报 成长足迹手抄报 英语国庆手抄报 快乐阅读手抄报 中秋节手抄报。 525心理健康手抄报