计算机系统应用教程网站

网站首页 > 技术文章 正文

Qt开发dll共享库简单的调试方法

btikc 2024-09-08 12:02:40 技术文章 27 ℃ 0 评论

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的时候可以直接运行。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表