win10上编译libharu库
背景:
最近的項(xiàng)目需要自動(dòng)的生成pdf文件,我在網(wǎng)上查看相關(guān)的資料,發(fā)現(xiàn)目前比較流行的生成pdf文件的庫(kù)有兩個(gè),一個(gè)是libpdf,另一個(gè)是libharu。libpdf個(gè)人使用時(shí)免費(fèi)的但是商業(yè)使用就需要收費(fèi)了,否則得到的pdf上有水印。有人說libpdf要比libharu好用,因?yàn)閘ibharu需要自己編譯,但是考慮到節(jié)約成本,我想我應(yīng)該先嘗試一下libharu庫(kù),然后再做決定。
? ? ? ?首先是要編譯libharu庫(kù),我看了好幾篇文章,感覺說的都不很清楚,操作性不強(qiáng),后來無(wú)意間發(fā)現(xiàn)了這篇文章(https://blog.csdn.net/zerojava0/article/details/111482470?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-5&spm=1001.2101.3001.4242),我照著博主說的步驟進(jìn)行操作,雖然我在操作過程中遇到了博主沒有提到的一些問題,但是我還是逐一解決了,最后也編譯成功了。
使用工具:
VS2017, cmake-3.11.3
第一步:下載資源:
libharu的編譯是需要libpng庫(kù)的,而libpng是依賴zlib的,所以我們依次安裝三個(gè)庫(kù)。
zlib 下載地址:http://www.zlib.net/
libpng下載地址:http://www.libpng.org/pub/png/libpng.html
libharu下載地址:http://libharu.org/
下載下來后為
解壓縮后,簡(jiǎn)化了一下目錄名字,就是下面這個(gè)樣子了。
第二步:編譯zlib庫(kù)
首先在zlib-1.2.11目錄下新建一個(gè)build文件夾。
然后打開cmake,并設(shè)置源文件的路徑以及編譯文件生成的路徑,然后點(diǎn)擊一下“Configure”再點(diǎn)擊一下“Generate”,下方的對(duì)話框中顯示了,Configring done和Generating done則表示此步操作順利完成。
接下來我們來看看buid文件中都生成了哪些文件
就是上面這些文件啦,接下來就是雙擊上面標(biāo)注的這個(gè)zlib.sln文件,使用我的VS2017打開,然后開始編譯
然后可以看到編譯出來的文件存放在哪里,當(dāng)然也可以選擇編譯模式為Release模式。
第三步:編譯libpng庫(kù)
首先也是要在lpng1637中新建一個(gè)build文件夾。然后打開cmake,設(shè)置lpng1637路徑。點(diǎn)擊Configure后彈出錯(cuò)誤提示信息??梢钥吹绞且?yàn)檎也坏絑LIB_INCLUDE_DIR和ZLIB_LIBRARY
我們?cè)俚谝徊街幸呀?jīng)編譯好了zlib庫(kù),選擇Abvanced,然后在下面設(shè)置ZLIB_INCLUDE_DIR和ZLIB_LIBRARY_RELEASE的路徑,再次點(diǎn)擊Configure和Generate。
成功了,真不錯(cuò)。
然后看一下這次build文件中生成了什么,
然后在lpng1637/build中創(chuàng)建一個(gè)zlib文件夾,然后將第二步中生成的zlibd.lib拷貝到zlib文件夾下。
然后雙擊libpng.sln,使用VS2017打開工程。
右鍵png,然后選擇Properties.
接下來是這樣
接下來是這樣
接下來是這樣
接下來開始編譯
編譯出現(xiàn)了問題,就是zlib庫(kù)中找不到zconf.h文件,遇到這樣的問題呢,直覺告訴我,首先要查看,工程下面到底有沒有這個(gè)文件
zconf.h文件確實(shí)存在,
看一下zlib.h在哪里,
知道他們的相對(duì)位置后,我修改為#include "build/zconf.h",然后重新編譯,編譯成功。生成了libpng16d.lib
第四步:編譯libharu庫(kù)
上面咱們已經(jīng)成功編譯了,zlib庫(kù)和png庫(kù),同時(shí)生成了相應(yīng)的lib文件,接下來首先在libharu目錄下創(chuàng)建兩個(gè)文件夾,分別命名為libpng和zlib。
然后將剛才編譯得到的zlibd.lib拷貝到zlib文件夾下,將libpng16d.lib拷貝到libpng下。如下圖所示。
然后使用同樣的方法用cmake來編譯libharu,成功了。
雙擊libharu.sln,使用VS2017打開工程。
選擇屬性
編譯成功啦,生成了libhpdfsd.lib.
好了,今天就寫到這里了,接下來取研究如何使用這個(gè)庫(kù)。
總結(jié)
以上是生活随笔為你收集整理的win10上编译libharu库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【正点原子STM32连载】 第三十三章
- 下一篇: 微信小程序商城毕业设计毕设作品(4)开题