window从零使用QT5搭建diffpdf项目实践(含poppler)

本文详述如何在Windows上使用QT5搭建DiffPDF项目,包括QT5的安装、DiffPDF源码下载、Poppler的集成以及解决编译过程中遇到的问题。在QT4到QT5的升级过程中,对头文件、库引用进行调整,并成功运行项目。
摘要由CSDN通过智能技术生成


最近做了一个开源项目diffpdf,大弄了一番qt,个中辛酸不得不让自己写下来踩过多少的坑

文件下载与安装

所有文件均可在QT官网获取,不要去一些私人的云盘或软件网站下载
http://download.qt.io/archive/

  • 1.qt-opensource-windows-x86-5.9.8.exe,这个并不是最新的版本,也不是比较旧,因为第一次接触,所以选了一个中间的版本尝试,避免有什么特殊的问题,另外,这个是傻瓜式安装包,含有所有qt相关的开发环境,所以难免文件会大一点
  • 2.diffpdf-2.1.3.tar开源项目
  • 3.poppler-0.39.0-win32.zip,这个是已经编译好的文件,可以直接使用,不用自己在window下部署一遍奇烦的poppler,其他的版本可以可以在这里找到Poppler for Windows
  • 4.poppler-0.39.0.tar.xz 这里一定要与win32的版本一致,不然有些方法会对不上

首先不得不说,自己是第一次玩qt,所以直接用傻瓜式的安装方法,对于会ming32,qt-creator,qt-version独立安装的,可以跳过

QT安装注意

总体的过程就是: Next-Skip-下一步-下一步-下一步-下一步-下一步-安装(漫长的等待环节)
其中在第四步的时候需要注意

在漫长的等待过后,完成时会默认勾选启动qt creator,我们打开,试试它的示例项目,能够运行起来,则说明qt环境部署完成了。
除示例项目外,还可以自己新建一个widget项目,直接编译运行,看看会不会找不到qt5的dll,
如何出现提示“QT5Guid.dll”"QT5Core.dll"等情况,需要自己添加QT的环境变量

对于傻瓜式安装,还有一个好处,就是不需要在qt creator里面去自定义 kit,这个非常关键,对于qt 的编译环境和库链接,全是看kit使用的编译器,当然,明白个中关系也是值得花时间学习的

补充一些小插曲,由于开源项目diffpdf 是2012年的了(收费版本的除外),使用的qt4,低版本的poppler,还有神奇的gcc4.4.0,这个神奇而另新手窒息的版本,不仅花时间,还花成本,反正就是,新手接触qt的话,不建议学qt4,项目也是,狠心一点,坑坑就过去了。


DiffPDF

项目源代码下载:diffpdf-2.1.3.tar
这个是DiffPDF的官网:http://www.qtrac.eu/diffpdf.html
相关的项目在github上也有,不过是个人修改过或者是备份的

编译这个项目,需要先知道以下两点点:

  • 1.QT4项目升级QT5
  • 2.poppler在window下的使用

下面详细说说过程

  • 1.文件解压,diffpdf-2.1.3.tar,poppler-0.39.0,poppler-0.39.0-win32,
  • 2.项目文件准备:
  • 2.1 diffpdf-2.1.3项目下新建poppler文件夹,把poppler-0.39.0-win32里面的libpoppler.dll,libpoppler-qt5.dll,libpoppler.dll.a,libpoppler-qt5.dll.a复制过去
  • 2.2 把poppler-0.39.0/qt5/src 下的.h,.cpp文件复制过去
  • 2.3 修改添加引用路径和引用库
INCLUDEPATH += $$PWD/poppler
win32: LIBS += -L$$PWD/poppler -llibpoppler
win32: LIBS += -L$$PWD/poppler -llibpoppler-qt5
  • 2.4 打开diffpdf.pro项目 把关于poppler-qt4的所有相关删除,改为引用poppler-qt5,
  • 2.5 QT4升级QT5的一些补充,明文添加引用
QT += widgets
QT += gui
QT += printsupport
  • 2.6 没有poppler-version,poppler-global,则去poppler-0.39.0/cpp 下找到复制到项目的poppler下,
  • 2.7 接下来一遍编译,一边修改问题,遇到问题,则去搜索引擎寻找解决方法,这个过程很痛苦,但是,坚持总会有好结果,
  • 2.8 对于QMimeData的问题,因为不想去编译qt,修改源代码,所以就把那段代码注释了,
  • 2.9 编译通过后,如果实际运行时提示没有找到poppler.dll 和 poppler-qt5.dll ,则需要把这两个文件复制到输出的程序目录
  • 2.10 至于程序打包发布,有很多方法,我这里用的是Enigma Virtural Box
  • 2.11 运行结果

言外

  • 1.为什么编译diffpdf项目?
    项目需要pdf对比功能,找过不少相关软件,又不想花钱,又有自己的需求,所以要编译修改才可以应用到自己的项目上
  • 2.qt开发怎么样?
    呃,虽然懂点C++,但是感觉QT还是比较高大上的,毕竟是开发客户端的,很多牛逼的项目都是QT所作,但不是专门从事的话,用起来还是比较的乏力

last modified 2019年6月13日11:25:57

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值