Leptonica在VS2010中的編譯二,編譯 Leptonica1.68
官方編譯資料
是英文的,英文好的可直接參考 官方VS2008編譯資料
Leptonica依賴的包編譯請參考 Leptonica在VS2010中的編譯一,編譯它依賴於庫
編譯前準備:
- 下載原始碼 leptonica-1.68.tar.gz
- 下載VS2008工程 vs2008-1.68.zip
- 下載lib和include leptonica-1.68-win32-lib-include-dirs.zip
- 編譯Leptonica依賴的包,前面已經講過。
注意上面的3裡面的lib是vs2008編譯的,將vs2010編譯好的檔案放到lib目錄。
編譯
建立如下目錄:
BuildFolder\
include\
leptonica-1.68\
lib\
- 將leptonica-1.68-win32-lib-include-dirs.zip解壓的include目錄裡面的檔案放到上面的include目錄。
- 將leptonica-1.68.tar.gz的解壓的檔案放到leptonica-1.68目錄
- 將vs2008-1.68.zip解壓的檔案放到leptonica-1.68目錄
- 拷貝一份vs2008到當前目錄,改名為2010.
目錄結構如下
BuildFolder │ ├─include │ ├─leptonica-1.68 │ ├─vs2008 │ ├─vs2010 └─lib
用vs2010開啟“leptonica.sln”,開始編譯
- 有些檔案會出現奇怪的C2275和C2146錯誤,解決方法,找到出錯處,將所有變數的宣告放在函式的開頭即可;
- 有些檔案會出現奇怪的C2057錯誤,解決方法,註釋掉類似的static const l_int32 L_BUF_SIZE = 52;新建一個redefineconstant.h檔案,將此檔案包含到出現此問題的檔案中,redefineconstant.h檔案的內容為:
#ifndef _REDEFINE_CONSTANT_H #define _REDEFINE_CONSTANT_H #include "allheaders.h" #define L_BUF_SIZE 512 #define MAX_ALLOWED_DILATION 25 #endif // _REDEFINE_CONSTANT_H
- 依賴包版本修改,“ZLIB_VERSION”的定義在“leptonica_versionnumbers.props”檔案中,可以修改具體的值。
1.72編譯需要註釋掉:tiff4.0.6的tiffiop.h的下面程式碼<PropertyGroup Label="UserMacros"> <GIFLIB_VERSION>416</GIFLIB_VERSION> <LIBJPEG_VERSION>8c</LIBJPEG_VERSION> <LIBLEPT_VERSION>168</LIBLEPT_VERSION> <LIBLEPT_NUMBER>1.68</LIBLEPT_NUMBER> <LIBPNG_VERSION>143</LIBPNG_VERSION> <LIBTIFF_VERSION>394</LIBTIFF_VERSION> <ZLIB_VERSION>125</ZLIB_VERSION> </PropertyGroup>
//#if !defined(HAVE_SNPRINTF) && !defined(HAVE__SNPRINTF) //#undef snprintf //#define snprintf _TIFF_snprintf_f //extern int snprintf(char* str, size_t size, const char* format, ...); //#endif
相關文章
- Leptonica在VS2010中的編譯一,編譯它依賴於庫編譯
- 在 Windows 中編譯 Github 中的 GO 專案Windows編譯GithubGo
- Java編譯與反編譯Java編譯
- 在Windows下編譯WebRTCWindows編譯Web
- libusb android ndk編譯--編譯mipsAndroid編譯
- hadoop編譯—+2.x編譯Hadoop編譯
- N1064編譯鏈編譯編譯
- [Web翻譯]JavaScript中的編譯與填充WebJavaScript編譯
- 編譯編譯
- cmake編譯指定自己編譯的庫路徑編譯
- 編譯器的自展和自舉、交叉編譯編譯
- Rust 在 cargo 中進行條件編譯RustCargo編譯
- SCSS 的編譯CSS編譯
- 在CentOS 7上編譯QtumCentOS編譯QT
- Nginx 的編譯並打包成二.txtNginx編譯
- 反編譯系列教程(中)編譯
- Linux中gcc編譯工具LinuxGC編譯
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- hi3520d核心編譯編譯方法編譯
- Make編譯之編譯32bit ffmpeg編譯
- 開源編譯工具和編譯軟體編譯
- 在使用make編譯時,修改原始檔的註釋內容,是否會重新編譯?編譯
- 編譯VIM編譯
- 編譯版本編譯
- 交叉編譯編譯
- 編譯googletest編譯Go
- 編譯宏編譯
- 編譯 ncurses編譯
- freeswitch 編譯編譯
- 編譯原理編譯原理
- 編譯 zsh編譯
- 編譯 git編譯Git
- openXLSX編譯編譯
- webrtc編譯Web編譯
- acl 編譯編譯
- Java程式碼的編譯與反編譯那些事兒Java編譯
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- Rust 交叉編譯與條件編譯總結Rust編譯