当前位置: 首页 > news >正文

qt实现的pdf阅读器(二)--XpdfReader在linux下的编译

目录

1.简介

2.需求说明

3.编译

3.3. 下载源码

3.2. 移植安装包和依赖库

3.2.1 准备工作

3.3.2 了解

 3.3.3 编译并安装zlib

3.3.4 编译并安装libpng

3.3.5 编译并安装lcms

 3.3.6 编译并安装freetype

3.3.7 编译xpdf

 3.3.8 查看运行编译好的xpdf


1.简介

Xpdf 是一个免费的 PDF 查看器和工具包,包括文本提取器、图像转换器、 HTML 转换器等。大多数工具都是开源的。

2.需求说明

最近,在研究适合跨平台的轻量级的pdf阅读器(由于项目需求 考虑支持win/linux(amd、mips、arm三种架构)/macos),之前的文章中也有提到,目前,研究可行的三种解决方案:

1、pdfium库 (windows下的编译难度相对较大)

2、pdfjs(采用qt+webjs的方式)

3、xpdf源码编译(本文重点讲解的编译方式)

3.编译

3.3. 下载源码

Xpdf官网下载:Download Xpdf and XpdfReader

也可以点击这里下载

3.2. 移植安装包和依赖库

3.2.1 准备工作

3.3.2 了解

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)

./configre ----prefix=你想保存的路径

make

make install

 3.3.3 编译并安装zlib

 

 

 相关命令如下:

cd zlib-1.2.12/

mkdir build

cd build

cmake ..

sudo make

sudo make install

3.3.4 编译并安装libpng

 

相关命令如下:

cd libpng-1.6.35

mkdir build

cd build

chmod +x ../configure

mkdir /usr/local/libpng1.6.35

cmake ..

sudo make

sudo make install

3.3.5 编译并安装lcms

相关命令如下

cd lcms2-2.12

mkdir build

cd build

chmod +x ../configure

Sudo ../configure --prefix=/usr/local/lib

Sudo make

Sudo make install

 3.3.6 编译并安装freetype

具体命令如下:

cd freetype-1.12.0

mkdir build

cd build

cmake ..

Sudo make

Sudo make install

报错:

可能需要安装,根据提示进行参考:

(1) //安装bzip2   

apt-get install bzip2   

(2)//安装harfbuzz 【注freetype编译完成还需要再次编译】

下载地址:Index of /software/harfbuzz/release

(3)安装brotli  【sudo apt install brotli  未检测到】

 下载地址:https://github.com/google/brotli/archive/master.zip

3.3.7 编译xpdf

 安装命令如下:

cd xpdf-4.04

mkdir build && cd build

cmake ..

sudo make

sudo make install

 3.3.8 查看运行编译好的xpdf

相关文章:

  • 视频号直播间首次突破1万人
  • 一款强大的免费开源的基于流量分析的扫描器结合不同场景的实际使用与漏-洞及木-马发现实践
  • 让人恶心的多线程代码,性能怎么优化?
  • 关于我转行嵌入式的那些事
  • 搞定 Redis 数据存储原理,别只会 set、get 了
  • 当云原生成为一种显学,对象存储和数据湖如何顺势而为
  • 计算机网络~物理层
  • Redis 多路复用
  • ICV:车载毫米波雷达市场有望在2023年突破45亿美元!
  • 【数据库】简答题知识点
  • Linux5.4.0内存分配器核心代码解析
  • SpringBoot 结合 MyBatis-Plus 配置多数据源以及结合 p6spy 打印 SQL 日志
  • PPCNN
  • Windows tensorflow、keras虚拟环境搭建记录(使用conda和mamba)
  • Canvas 从进阶到退学
  • 376. 机器任务——最小点覆盖+匈牙利算法
  • [第十二届蓝桥杯/java/算法]F——时间显示
  • 多维表需求管理表自动生成TAPD需求
  • shell总结
  • C++【LRU】