-
Qt开发dll共享库简单的调试方法_qt发布dll
- 网站名称:Qt开发dll共享库简单的调试方法_qt发布dll
- 网站分类:技术文章
- 收录时间:2025-08-30 03:30
- 网站地址:
“Qt开发dll共享库简单的调试方法_qt发布dll” 网站介绍
Qt开发dll共享库时,由于共享库是没法执行的,调试起来不方便。使用Qt宏定义就可以很方便的解决这个问题。
初始准备
新建一个项目,项目模板选择“C++ Library”。新建一个C++共享库项目。
比如我这里新建了一个encryptLib项目。都是默认生成的这里并没有什么不同。
默认生成的项目开发和发布模式都会生成共享库直接运行会报错。因为找不到可执行文件。可以另外创建一个项目生成可执行文件调用共享库来调试,如果想在本项目里直接进行调试则更简单按照下面的步骤做。
第一步
修改工程配置文件"encryptLib.pro"文件。
Qt默认的项目模板是生成可执行程序的。所以我们只要将原来的“TEMPLATE = lib”修改为Release发布时生效,那么在Debug时就可以生成可执行的程序了。
pro文件原来配置(片段):
QT -= gui
TEMPLATE = lib
DEFINES += ENCRYPTLIB_LIBRARY
CONFIG += c++11
pro文件修改后的配置(片段):
QT -= gui
#设置只在发布时生成共享库
CONFIG(release,debug|release){
TEMPLATE = lib
}
DEFINES += ENCRYPTLIB_LIBRARY
CONFIG += c++11
第二步
新建main.cpp源文件。代码如下:
#include "encryptlib.h"
#ifdef QT_DEBUG
int main(int argc, char* argv[])
{
qDebug()<<encrypt("password");
return 0;
}
#endif
这里重点是用“#ifdef QT_DEBUG”和“#endif”将main函数包裹起来,这样在Debug的时候就有main函数,而Release的时候没有main函数。Release生成的是共享库也不需要main函数。
这样就完成了,项目选择构建模式Debug或Release的时候会分别生成exe和dll。Deug的时候可以直接运行。
更多相关网站
- Qt使用教程:指定编辑器设置_qt需要设置一个编辑器来构建
- 24章全-Qt 全流程实战企业级项目 - 云对象存储浏览器
- QT远程Linux文件浏览器_qt读取远程电脑的文件目录
- Qt中的IO操作_qt的ide
- QT5.9.9生成并调用自己的DLL_qt怎么调用dll文件
- 从零开始学Qt(25):常用的宏定义_从零开始学习26键
- Qt与Js互相调用_java调用qt
- Qt6重磅更新:新版本的Qt 6 将通过包管理器提供附加库
- Qt编程基础_qt编程入门
- Qt 纯C++项目发布为dll的方法(超详细步骤)
- 从零开始学Qt(52):QTextStream读写文本文件
- 「Qt入门第22篇」 数据库(二)编译MySQL数据库驱动
- Qt使用教程:指定生成设置(二)_qt二维码生成教程
- 用Qt简化你的开发工具集,从MCU到桌面电脑,应有尽有
- Qt drawText 绘制文本_qt drawrect
- QT框架之个人管理系统实现-前导文
- Qt文件路径:QDir_qt 当前路径
- 怎么在qt中加载css文件_qt怎么添加ui
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- 兔兔工程量计算软件下载 (27)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)
- jdk-8u181-linux-x64.tar.gz (32)
- 计算机网络自顶向下pdf (34)
- -dfile.encoding=utf-8 (33)
- jdk1.9下载 (32)