Xcode 4.6、iOS SDK 6.1、tesseract-ocr 3.02
最後の OpenCV バージョンはlibc++を使用してビルドされ、tesseract-ocr はlibstdc++を使用してビルドされるため、1 つの xcode プロジェクトでそれらを一緒に使用することはできません。
だから、libc ++を使ってtesseractを構築しようとしています。こちらのスクリプトを使用して(ベース SDK を更新し、ターゲットを 6.1 に展開)、tesseract は正常にビルドされ、C++ 標準ライブラリがコンパイラの既定値に設定されると、私の xcode プロジェクトで動作します。それよりも、こちらの回答に従って、スクリプトを変更してlibc ++でビルドしようとしました。CXXをclang++を指すように変更し、 -stdlib=libc++をCXXFLAGSに追加しました。
その結果、スクリプトは成功し、ライブラリがビルドされますが、xcode で C++ 標準ライブラリとして libc++ を選択すると、多くのリンカー エラーが発生し、プロジェクトのビルドが失敗します。新しいライブラリは、標準ライブラリがコンパイラの既定値に設定されている場合でも機能します (定期的にビルドされた場合と同様)。
私は何が欠けていますか?
2 に答える
Tsseract-OCR-iOSは、この問題を処理するために更新されました (OpenCV などの libc++ コンパイル済みプロジェクトと同じプロジェクトで動作します)。インストールするときは、次の手順を忘れないでください。
iOS7 以降を使用している場合は、libstdc++.6.0.9.dylib ライブラリをリンクします (ターゲット => 一般 => リンクされたフレームワークとライブラリ => + => libstdc++.6.0.9)。
プロジェクトに移動し、プロジェクトをクリックして、ビルド設定タブで -lstdc++ をすべての「その他のリンカー フラグ」キーに追加します。
*プロジェクト設定に移動し、C++ 標準ライブラリ => コンパイラの既定値であることを確認します。( https://github.com/treinに感謝)
プロジェクトのルートの下にあるテンプレート フレームワーク プロジェクトから tessdata フォルダーをコピーしてインポートします。「tessdata」ファイルが含まれています。ここにコピーしてさらに tessdata ファイルを追加できます。
*OpenCV をコンパイルするには、C++ 標準ライブラリを "libc++" に設定する必要がありました。