hugin編譯pano13問題

2021-07-02 12:22:00 字數 945 閱讀 1353

pano是乙個開源影象拼接庫,pano13就是它的

1.3版本。今天編譯這個庫,發現需要注意乙個地方。pano是依賴於png庫的。我設定依賴的png庫的版本是1.5.12。在編譯pano13出現下面錯誤:

錯誤285

error c2037: 「jmpbuf」的左側部分指定未定義的結構/聯合「png_struct_def」

e:\src\test\libpano13-2.9.17\png.c64

錯誤287

error c2037: 「jmpbuf」的左側部分指定未定義的結構/聯合「png_struct_def」

e:\src\test\libpano13-2.9.17\png.c

173

錯誤286

error c2168: 「_setjmp」: 內部函式的實參太少

e:\src\test\libpano13-2.9.17\png.c64

錯誤288

error c2168: 「_setjmp」: 內部函式的實參太少

e:\src\test\libpano13-2.9.17\png.c

173

發現需要在編譯png庫需要設定預處理器:png_setjmp_supported,pano13工程中同樣需要設定預處理器:png_setjmp_supported

然後在pano13工程需要修改兩處**: 將

64行的if (setjmp(png_ptr->jmpbuf))改為if(png_jmpbuf(png_ptr)),

將174行的if (setjmp(png_ptr->jmpbuf))改為if(png_jmpbuf(png_ptr))。

原因是png的標頭檔案中有說明:

還有乙個錯誤是編譯png.c時出現png_struct_def結構體無法識別的錯誤,解決辦法是在#include "png.h"下面增加一行**:#include 。

編譯原理1

1 引論 1.1 什麼叫編譯程式 編譯程式是指能夠把某一種語言程式 稱為源語言程式 轉換成另一種語言程式 稱為目標語言程式 而後者與前者在邏輯上是等價的。1.2 編譯過程概述 1.2.1 詞法分析。對構成源程式的字串進行掃瞄和分解,識別單詞。例 for i 1 to 100 do,分析結果如下 基本...

編譯過程1

configure階段是是填寫配置引數階段,會生成makefile檔案,makefile檔案主要描述了在編譯階段的檔案的編譯順序。在工程專案中,有多個目錄和多個檔案,如何安排檔案編譯順序就是通過makefile檔案實現的。make階段,使用make命令會呼叫gcc編譯器和binutils彙編器,gc...

《編譯原理》1

翻譯程式 將一種語言等價轉換另一種語言的程式 編譯程式 將某種高階語言等價轉換另一種低階語言的程式 解釋程式 將源語言寫的源程式作為輸入,但不會產生目標程式,而是邊解釋邊執行源程式 編譯執行 解釋執行 1 html xml分析 2 語言處理工具 模擬英文翻譯為中文 識別句子中乙個個單詞 詞法分析 分...