Zynq (ARM) のソースから OpenCV ライブラリをビルドしました。ただし、OpenCV は x86 (PC) 用の同じ PC でビルドされていました。まず、PC ですべての例を問題なく実行できます。次に、次のエラーが表示される highgui ライブラリを含むプログラムを除いて、arm ターゲットですべてのプログラムをクロスコンパイルして実行できます。
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /home/hristov/workspace/opencv/modules/highgui/src/window.cpp, line 534
terminate called after throwing an instance of 'cv::Exception'
what(): /home/user/workspace/opencv/modules/highgui/src/window.cpp:534: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage
はい、この問題の解決策についてフォーラムを調べましたが、不明な回答がいくつかありました。詳細を知りたいです。ARM ビルド WITH_GTK および GTK2 用の OpenCV ビルドを作成しました。libgtk2.0-dev、pkg-configもインストール
ただし、このフォーラムの別のトピックから、問題は pkg-config の設定にあることがわかりました: http://answers.opencv.org/question/57945/opencv-gui-with-gtk-2-solved/
Q) 上記の解決策に基づいて、ARM プラットフォーム (Zynq) または PC プラットフォーム (Ubuntu PC) で PKG_CONFIG_PATH のパスを設定しますか? ARM プラットフォームでは説明されているパスに既に設定されていますが、PC Linux プラットフォームでは異なるためです。現在のパスの詳細を以下に示します。
PKG_CONFIG_PATH in PC(Ubuntu):
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
PKG_CONFIG_PATH in ARM (Embedded platform):
/usr/local/lib/arm-linux-gnueabihf/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
PC で pkg-config を /usr/lib/arm-linux-gnueabihf/pkgconfig/ の場所に変更する必要がある場合、その場所に pkg-config が見つかりません。ターゲットからフォルダーをコピーして、新しいフォルダーを作成する必要がありますか?
Q) また、GTK ライブラリもターゲット組み込みシステム (ARM) にインストールする必要がありますか?
多くの異なるソリューションでライブラリを何度も再構築しましたが、役に立たなかったので、誰かがこのソリューションで私を助けてくれることを願っています。ありがとう!