前言
之前研究了 pdf haru的库,但发现只能生成pdf,而不能编辑。所以研究了下linux下的podofo 0.9.6 的编译。
使用的是国产操作系统UOS 。当然,下面的方法也可以应用到其他Linux操作系统上
参考资料
PODOFO编译之2——依赖项编译及podofo-0.9.2编译
步骤:
零、新建一个Podofo的文件夹,是我们的编译目录。在Podofo中再新建一个depends目录。
一、下载
上Podofo官网下载最新版本。我下载的是0.9.6。解压后新建build目录,备用。
下载cmake-gui。方法也很简单,使用apt install cmake-gui即可。
二、编译libjpeg
到官网上下载jpeg源码,我下载的是jpeg-9d
将源码解压到Podofo目录中,并在终端中打开该目录。并依次输入命令:
./configure --prefix=/$PWD/../depends
make
make install
则会在depends/lib中生成 libjpeg.a
三、编译libzip
到zlib官网 下载源码,我下载的是zlib-1.2.11。将源码解压到Podofo中,并在终端中打开目录,并依次输入命令
./configure --prefix=/$PWD/../depends
make
make install
则会在depends/lib中生成 libz.a
四、编译tiff
到http://www.linuxfromscratch.org/blfs/view/stable/general/libtiff.html页面寻找 http://download.osgeo.org/libtiff/tiff-4.0.10.tar.gz下载。
我下载的是4.0.10。将源码解压到Podofo中,并在终端中打开目录,并依次输入命令
./configure --prefix=/$PWD/../depends
make
make install
则会在depends/lib中生成 libtiff.a和libtiffxx.a
五、编译freetype
在freetype官网下载最新的包,我原先下载的是252,但在linux下编译有问题。我重新下载了2.10.1,解压到Podofo中,并在终端中打开目录,并依次输入命令
./configure --prefix=/$PWD/../depends
make
make install
就编译好了。在depends/lib中生成 libfreetype.a ,libfreetype.so
六,编译lpng
上sourceforge下载libpng的源码。与上面 一样,在终端中打开目录,并依次输入命令
./configure --prefix=/$PWD/../depends
make
make install
在depends/lib中生成了libpng的*.a,*.so库
七、编译openssl库
到官网上下载openssl最新库。因为在OpenSSL 1.0.1g版本中“ Heartbleed”漏洞被修复,所以最好下载这之后的版本。
我下载的是1.1.1d。与上面 不同,unix系统下要要用到./config来配置,在终端中打开目录,并依次输入命令
./config -t --prefix=/$PWD/../depends
make
make install
这样就生成了静态库libssl.a,libcrypto.a和动态库libssl.so,libcrypto.so。
./config shared --prefix=/$PWD/../depends
make
make install
如果想要调试的库,再加个选项-d
./config -d shared --prefix=/$PWD/../depends
make
make install
至此,所有相关库都已经建好。下面使用CMAKE来编译PODOFO
八,安装freetype;
运行命令:下载freetype的源码,进入目录,运行make ,make install ,即可安装
九,安装fontconfig
上官网下载fontconfig源码。进入目录中,运行autogen.sh,此时会提示缺少的依赖库,如:
此时用apt install 命令,安装库即可.
(要注意的是autoreconf的安装,调用命令:apt-get install autoconf)
这个时候提示:
则要安装更新gettext。上官网下载源码。
运行./configure,make,make install(编译的时候有点长,耐心等待)
然后再运行fontconfig的
./autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man (是调用autogen.sh还是configure,看源码来源。具体详见目录中的INSTALL文件)
结果又碰上了新问题:
我安装了expat,重新运行,还是会报这个错。于是加上libxml2:
./autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man --enable-libxml2
(注意是xml2,不是xm12)
然后运行make,make install,fontconfig才编译安装 完成
十、编译 PODOFO库
新建一个QT工程,设置为静态库,然后将源码直接导入。
后记
1、我使用的操作系统是UOS,有很多库是默认没有的,比如fontconfig。我上官网下了源码自行编译,运行fontconfig的autogen.sh又发现缺少gettext库,再上官网下源码编译。运行autogen.sh --enable-libxml2,才把fontconfig编译出来。读者的操作系统如果有这些库,就不用做这些了。