NHocrをWindowsでビルド
win-nhocrをwindowsでビルドしようとしたら3つのエラーが起きたので、その対処(手順)の話
# プラットフォームツールセットエラー
# afxres.h include エラー
# freetype.lib なしエラー
イントロ
iOSでOCRを試してみる事にした。
日本語OCRで、オープンソース・簡単に使える系だとこの辺っぽい。
- tesseract-ocr
- NHocr
teseract-ocrは、cocoapodsを使ってちょいちょいと試せたのだけど。
NHocrの方は、Macでのbuildもままらない。
ので、まずは、慣れてるWindowsでbuild出来る所まで行く事にした。
Windows(VisualStudio2012)向けのソリューション一式がGitHubにあるので、それをダウンロードする。
matthewn4444/win-nhocr · GitHub
win-nhocr.slnをVisualStudio2012で開いてみて、何も考えずにビルド。
1. プラットフォームツールセットエラー
エラー 1 error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets 44 5 libimgo
上のようなエラーが何個か出る。
プロジェクトのビルドのプラットフォームツールセットの指定が、環境に無いもの(v120=VisualStudio2013)を指定しているとエラーになっている模様。
ソリューション・プロジェクトを2012に開いても何も言われてない事から2012のモノで間違い無さそうだけど、何故かプラットフォームツールセットの指定が2013のものになっているよう。
環境に2013が入っていると、2012上で操作しててもv120=2013が選べるらしいので、そういう環境で作成されたのかも。
実験してないが、VisualStudio2013が入っている環境であれば上のエラーは出ないじゃないかと思う。
1.の対処
対処としては、ソリューションエクスプローラー上でプロジェクト(nhocr)を右クリック→プロパティ→構成プロパティ→全般→プラットフォームツールセットで、Visual Studio 2012(v110)を選択する。
これを、
- nhocr
- libimgo
- libnhocr
- libufp
- objgrp
- siplib
の各プロジェクトに対して設定する。
そして、ビルド。
2. afxres.h include エラー
エラー 1 error RC1015: cannot open include file 'afxres.h'. D:\space\Projects\ocr\win-nhocr-master\nhocr\nhocr.rc 10 1 nhocr
次は、こんなエラーが出る。
多分これは、ExpressバージョンのVisual Studioを使って無ければ出ない。
afxres.hが無いと言われてて、これがExpressバージョンには無い模様。
MFCを使って無ければ不要なので、
3. freetype.lib なしエラー
エラー 1 error LNK1104: ファイル 'freetype.lib' を開くことができません。 D:\space\Projects\ocr\win-nhocr-master\nhocr\LINK nhocr
というエラー。
freetypeは、win-nhocrには含まれてないので、別途持ってくる。
3.の対処
freetypeを別途用意して、プロジェクトのライブラリディレクトリに追加する。
ビルド済みのものが、GnuWin32 projectのダウンロードページにあるので、ダウンロードする。
参照
BinariesのZipのリンクを選択してダウンロード。
適当な場所に解凍して、プロジェクトにfreetype.libを参照先フォルダ指定を追加する。
ソリューションエクスプローラー上でプロジェクトnhocrを右クリック→プロパティ→構成プロパティ→リンカー→全般→追加のライブラリディレクトリに追加。
例:解凍して出来た freetype-2.3.5-1-bin を freetype にリネームして win-nhocr-master フォルダに配置した場合、
..\freetype\lib
ビルド
これでまだwarningは出るがビルド出来る。
実際にテストの話は次回で。