博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt——pro文件的使用&Qt调用dll
阅读量:4092 次
发布时间:2019-05-25

本文共 2151 字,大约阅读时间需要 7 分钟。

一、如何查找资料

学会利用官方文档很重要,这里我简单地讲下怎么找到我们想要的内容比如这篇文章的主题--pro文件。

搜索Qt Document

 

在搜索栏中输入pro file,即可看到.pro文件的所有相关文档

点击第二个链接,就可以看到pro文件的一些细节了。

当然,也可以在Qt Creator中找到document,只是可以搜索起来不是那么方便。

二、pro文件概述

project文件包含qmake(一个可以生成makefile文件的工具)所需要的所有信息,通过这些信息,qmake可以构建我们的应用、库、插件等等。

project文件中主要有以下变量

 

变量 作用
一般项目配置选项。
放置可执行文件或二进制文件的目录。
由用户界面编译器(uic)处理的UI文件列表。
构建项目时使用的头文件(.h)列表。
项目中使用到的Qt模块列表
项目中包含的资源文件(.qrc)列表
构建项目时要使用的源代码文件列表。
用于该项目的模板。可以选择应用程序,库还是插件。

       我们创建桌面项目时,会自动生成pro文件,同时里面会有默认配置,一般我们不需要去改动。

但是,当我们要用到第三方库,或者是要使用资源文件的时候,就要做一些修改了。

具体可以参照这个链接,里面讲的比较详细:

也可以直接看前面我讲的的官方文档

三、Qt调用dll文件

这里,我以调用dll文件(实现两个数相乘),作为pro文件使用的一个例子。

1、首先,创建一个C++库

点击选择

注意类型选择为共享库,下一步

选择你想要的Kits,下一步

这里因为我只是实现简单的相乘,所以只使用QtCore模块,下一步

这里会自动生成几个文件,文件名默认即可,点击下一步,完成。

2、写代码

这是我写好的文件

(1)multiply.h头文件

#ifndef MULTIPLY_H#define MULTIPLY_H#include "multiply_global.h"class MULTIPLYSHARED_EXPORT Multiply{public:    Multiply();    //声明相乘函数    int MultiplyTwo(int a, int b);};#endif // MULTIPLY_H

(2)multiply.cpp文件

#include "multiply.h"Multiply::Multiply(){}//实现相乘函数int Multiply::MultiplyTwo(int a,int b){    return a * b;}

3、构建

完成之后就可以在release目录下找到dll等文件了

4、新建工程,调用上面生成的dll文件

我创建的是基于MainWindow的桌面应用

这里采用隐式调用。

首先,修改pro文件

在pro文件的后面,添加以下语句(其中目录根据你自己的实际目录做下修改,此外注意是反斜杠):

#指定前面构建multiply工程得到的release文件夹中的lib文件LIBS += F:/QtFiles/QtRoad/VS/build-multiply-Desktop_Qt_5_9_1_MSVC2017_64bit-Release/release/multiply.lib#使工程包含multiply工程中的头文件INCLUDEPATH += F:/QtFiles/QtRoad/VS/multiply

接着,在mainwindow.cpp上写调用代码

#include "mainwindow.h"#include "ui_mainwindow.h"//加入包含文件#include "multiply.h"#include 
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //调用dll Multiply mul; int c = mul.MultiplyTwo(2,3);//若能调用成功,则QtCreator的输出信息栏将输出整数6 qDebug()<

点击运行,发现出现异常

这是因为,编译得到的可执行文件需要有dll才能运行。所以要复制multiply.dll到工程的release目录下,跟UseMultiply.exe放在一块。

复制好dll后,点击运行

可以看到,在弹出窗口的同时,QtCreator的输出信息栏输出6,说明我们的dll文件已被正确调用。

 

另外,上面pro文件LIBS语句也可以这么写:

LIBS += -L"F:/QtFiles/QtRoad/VS/build-multiply-Desktop_Qt_5_9_1_MSVC2017_64bit-Release/release" -lmultiply

具体参考

 

 

综上,隐式调用就是:

(1)在pro文件用LIBS给它指定一下lib文件在哪里(multiply库工程的构建目录下);

(2)在你的工程编译目录下(exe所在目录),放一个我们所要调用的dll文件。

 

 

 

你可能感兴趣的文章
卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
查看>>
厉害了!Python 编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具!
查看>>
你的银行账户信息,可能正被人拿到暗网上公开售卖!
查看>>
太赞啦!GitHub 重磅宣布,私有仓库将对外免费开放,不限人数!
查看>>
我用 Python 分析了 “青你 2” 漂亮小姐姐的颜值,结果真香!
查看>>
这款开源神器,让你能在 iPad 上随心所欲写代码!
查看>>
卧槽!Java 虚拟机竟然还有这些性能调优技巧...
查看>>
JavaScript 诞生的这 20 年来,都发生了什么...
查看>>
听说玩这些游戏能提升编程能力?
查看>>
7 年工作经验,面试官竟然还让我写算法题???
查看>>
被 Zoom 逼疯的歪果仁,造出了视频会议机器人,同事已笑疯丨开源
查看>>
上古语言从入门到精通:COBOL 教程登上 GitHub 热榜
查看>>
哈哈哈哈,「00 后黑话破解器」火爆 GitHub,这波操作我给满分!
查看>>
再见,Eclipse...
查看>>
超全汇总!B 站上有哪些值得学习的 AI 课程...
查看>>
网络协议那些事儿,每一个程序员的必备知识,这次终于理顺了!
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
新加坡总理的儿子,写了一本计算机入门书籍...
查看>>