win10上編譯libharu庫

背景:

最近的項目需要自動的生成pdf文件,我在網上查看相關的資料,發現目前比較流行的生成pdf文件的庫有兩個,一個是libpdf,另一個是libharu。libpdf個人使用時免費的但是商業使用就需要收費了,否則得到的pdf上有水印。有人說libpdf要比libharu好用,因為libharu需要自己編譯,但是考慮到節約成本,我想我應該先嘗試一下libharu庫,然后再做決定。

? ? ? ?首先是要編譯libharu庫,我看了好幾篇文章,感覺說的都不很清楚,操作性不強,后來無意間發現了這篇文章(https://blog.csdn.net/zerojava0/article/details/111482470?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-5&spm=1001.2101.3001.4242),我照著博主說的步驟進行操作,雖然我在操作過程中遇到了博主沒有提到的一些問題,但是我還是逐一解決了,最后也編譯成功了。

使用工具:

VS2017, cmake-3.11.3

第一步:下載資源:

libharu的編譯是需要libpng庫的,而libpng是依賴zlib的,所以我們依次安裝三個庫。

zlib 下載地址:http://www.zlib.net/

libpng下載地址:http://www.libpng.org/pub/png/libpng.html

libharu下載地址:http://libharu.org/

下載下來后為

解壓縮后,簡化了一下目錄名字,就是下面這個樣子了。

第二步:編譯zlib庫

首先在zlib-1.2.11目錄下新建一個build文件夾。

然后打開cmake,并設置源文件的路徑以及編譯文件生成的路徑,然后點擊一下“Configure”再點擊一下“Generate”,下方的對話框中顯示了,Configring done和Generating done則表示此步操作順利完成。

接下來我們來看看buid文件中都生成了哪些文件

就是上面這些文件啦,接下來就是雙擊上面標注的這個zlib.sln文件,使用我的VS2017打開,然后開始編譯

然后可以看到編譯出來的文件存放在哪里,當然也可以選擇編譯模式為Release模式。

第三步:編譯libpng庫

首先也是要在lpng1637中新建一個build文件夾。然后打開cmake,設置lpng1637路徑。點擊Configure后彈出錯誤提示信息。可以看到是因為找不到ZLIB_INCLUDE_DIR和ZLIB_LIBRARY

我們再第一步中已經編譯好了zlib庫,選擇Abvanced,然后在下面設置ZLIB_INCLUDE_DIR和ZLIB_LIBRARY_RELEASE的路徑,再次點擊Configure和Generate。

成功了,真不錯。

然后看一下這次build文件中生成了什么,

然后在lpng1637/build中創建一個zlib文件夾,然后將第二步中生成的zlibd.lib拷貝到zlib文件夾下。

然后雙擊libpng.sln,使用VS2017打開工程。

右鍵png,然后選擇Properties.

接下來是這樣

接下來是這樣

接下來是這樣

接下來開始編譯

編譯出現了問題,就是zlib庫中找不到zconf.h文件,遇到這樣的問題呢,直覺告訴我,首先要查看,工程下面到底有沒有這個文件

zconf.h文件確實存在,

看一下zlib.h在哪里,

知道他們的相對位置后,我修改為#include "build/zconf.h",然后重新編譯,編譯成功。生成了libpng16d.lib

第四步:編譯libharu庫

上面咱們已經成功編譯了,zlib庫和png庫,同時生成了相應的lib文件,接下來首先在libharu目錄下創建兩個文件夾,分別命名為libpng和zlib。

然后將剛才編譯得到的zlibd.lib拷貝到zlib文件夾下,將libpng16d.lib拷貝到libpng下。如下圖所示。

然后使用同樣的方法用cmake來編譯libharu,成功了。

雙擊libharu.sln,使用VS2017打開工程。

選擇屬性

編譯成功啦,生成了libhpdfsd.lib.

好了,今天就寫到這里了,接下來取研究如何使用這個庫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252282.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252282.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252282.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

爬蟲——正則表達式re模塊

為什么要學習正則表達式 實際上爬蟲一共就四個主要步驟: 明確目標:需清楚目標網站爬:將所有的目標網站的內容全部爬下來取:在爬下來的網站內容中去掉對我們沒有用處的數據,只留取我們需要的數據處理數據:按…

深入Spring Boot:快速集成Dubbo + Hystrix

2019獨角獸企業重金招聘Python工程師標準>>> 背景 Hystrix 旨在通過控制那些訪問遠程系統、服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。Hystrix具備擁有回退機制和斷路器功能的線程和信號隔離,請求緩存和請求打包&#xff…

BZOJ2333 [SCOI2011]棘手的操作 【離線 + 線段樹】

題目 有N個節點,標號從1到N,這N個節點一開始相互不連通。第i個節點的初始權值為a[i],接下來有如下一些操作: U x y: 加一條邊,連接第x個節點和第y個節點 A1 x v: 將第x個節點的權值增加v A2 x v: 將第x個節點所在的連通…

opencv圖像仿射變換和普通旋轉

背景:今天需要對程序生成的圖像進行旋轉90度和下采樣操作,當然還有改變圖像類型的操作,就是把原來.png的圖像轉換為.jpg的圖像,主要是我目前使用libharu庫,無法成功從本地加載png圖像到pdf中去,不得不使用j…

討厭麻煩的ora 01722無效數字

webservice開發過程中,數據庫由原來的oracle改為現在的sql server。然后重新調試,結果報出ora 01722無效數字的錯誤。 由于連接oracle數據庫的時候并沒有問題,所以一開始我以為是數據庫不同,導致部分數據類型差異,&…

CSS樣式:覆蓋規則

規則一&#xff1a;由于繼承而發生樣式沖突時&#xff0c;最近祖先獲勝。 CSS的繼承機制使得元素可以從包含它的祖先元素中繼承樣式&#xff0c;考慮下面這種情況: <html><head><title>rule 1</title><style>body {color:black;}p {color:blue;}…

try{}里有一個 return 語句,那么緊跟在這個 try 后的 finally {}里的 code 會 不會被執行,什么時候被執行,在 return 前還是后?...

這是一道面試題&#xff0c;首先finally{}里面的code肯定是會執行的&#xff0c;至于在return前還是后&#xff0c; 看答案說的是在return后執行&#xff0c;我覺得不對&#xff0c;百度了一下&#xff0c;有說return前的&#xff0c;有說return后的&#xff0c;還有return中間…

相機和鏡頭選型需要注意哪些問題

背景&#xff1a; 最近需要優于項目需求需要對工業相機和鏡頭進行選型&#xff0c;于是我就開啟的學習相機之旅&#xff0c;雖然我一直在做機器視覺方向&#xff0c;但是我對相機的了解還是很少&#xff0c;我想正好趁這次機會好好學習一下。如果有錯誤的觀點請指正。 一、相…

響應式網頁布局 - W3Schools How-Tos 01

W3Schools教學系列 W3Schools是知名的網頁設計&#xff0f;前端開發教學網站&#xff0c;不僅提供HTML、CSS、JavaScript等的詳盡教學&#xff0c;還可以把它當作說明文件&#xff08;Documents&#xff09;。有經驗的前端或多或少已經接觸過這個網站&#xff0c;因為它經常出現…

正則表達式,終極使用!3個工具,搞定一切

文章前提&#xff0c;本人。不會正則的不論什么語法&#xff0c;僅僅懂一點正則的概念。本人從未自己寫過正則&#xff0c;都是網上收羅進行改動的。相同。沒有時間去研究正則。 可是為了方便&#xff0c;入手了幾個工具。 如今就為大家一一展示。 第一個&#xff0c;regexBuil…

iOS 在tableview的側滑事件里執行tableView.selectRow無效的解決辦法

很奇怪的問題&#xff0c;在執行默認選中一個cell的時候&#xff0c;突然發現這句話不起作用了 &#xff08;我的場景是&#xff1a;當前cell側滑刪除后&#xff0c;默認選中上一個cell&#xff09; 搞了半天&#xff0c;終于發現罪魁禍首竟然是因為&#xff1a;這句話寫在了側…

VS2017 C++工程 執行python腳本

我解決了哪怕很小的一個問題&#xff0c;我也想記錄下來來見證我的經歷。 背景&#xff1a; 一、使用libhuru庫生成pdf報告 最近參與一些測試工作&#xff0c;希望測試結束后能夠根據測試得到的數據和圖像自動生成測試報告&#xff0c;最開始調研到了生成報告的庫有libharu和…

標準正弦波變頻電源調制方式的實現

目前變頻電源正不斷向規模化、專業化、智能化、精細化方向發展。變頻電源的技術隨著工業電器電子制造的興起而不斷得到重視和發展。其中,中港揚以正弦脈SPWM為核心變頻電源系統電路便是一個很好的代表。純硬件電路在焊接電路上比較復雜&#xff0c;但是調節出來的SPWM波形比較完…

Jmeter教程索引貼

Jmeter教程索引貼 新的一年即將到來&#xff0c;不知不覺2015年自己在Jmeter方面總結的文章有十幾篇&#xff0c;在此匯總一下&#xff0c;順便也算是個總結吧。2016年&#xff0c;繼續學習技術&#xff0c;總結&#xff0c;寫文章。 一、基礎部分&#xff1a; 使用Jmeter進行h…

類與接口(二)java的四種內部類詳解

引言 內部類&#xff0c;嵌套在另一個類的里面&#xff0c;所以也稱為 嵌套類; 內部類分為以下四種&#xff1a; 靜態內部類成員內部類局部內部類匿名內部類一、靜態內部類 靜態內部類&#xff1a; 一般也稱”靜態嵌套類“&#xff0c;在類中用static聲明的內部類。 因為是stat…

單例設計模式和多線程

單例設計模式 單例&#xff1a;整個項目中&#xff0c;有某個類或者某些特殊的類&#xff0c;屬于該類的對象只能建立一個。 #include<iostream> using namespace std;class MyCAS { private:MyCAS(){}private:static MyCAS *m_instance;public:static MyCAS *GetInstanc…

運行imgui例程

背景&#xff1a;目前在做一個視覺測試系統&#xff0c;需要做一個界面&#xff0c;將相機獲取的圖像&#xff0c;以及測試過程中的數據呈現在界面上&#xff0c;在我印象里&#xff0c;做界面就用qt吧&#xff0c;直到這個月真要開始做界面了&#xff0c;我的領導給我建議用im…

性能測試總結(三)--工具選型篇

性能測試總結(三)--工具選型篇 本篇文章主要簡單總結下性能測試工具的原理以及如何選型。性能測試和功能測試不同&#xff0c;性能測試的執行是基本功能的重復和并發&#xff0c;需要模擬多用戶&#xff0c;在性能測試執行時需要監控指標參數&#xff0c;同時性能測試的結果不是…

創建一個最簡單的imgui測試用例

在上一篇文章中&#xff0c;我們初步認識了一下imgui,并且成功運行了他提供的demo。這只是開始學習imgui的第一步&#xff0c;在實際使用時&#xff0c;我們需要將imgui應用到自己的工程中去&#xff0c;所以你需要具備將imgui加到你工程中去的能力&#xff0c;簡單起見&#x…

idea中maven的setting.xml的配置

2019獨角獸企業重金招聘Python工程師標準>>> <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…