NHocrをWindowsでビルド

win-nhocrをwindowsでビルドしようとしたら3つのエラーが起きたので、その対処(手順)の話
# プラットフォームツールセットエラー
# afxres.h include エラー
# freetype.lib なしエラー


イントロ

iOSOCRを試してみる事にした。
日本語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を使って無ければ不要なので、

2.の対処

・includeの記述をafxres.hから代替のwinres.hに変える 参照
・一切使って無さそうなので、コメントアウト
で対処する。


またビルド。


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は出るがビルド出来る。



実際にテストの話は次回で。