armプラットフォームOpencv静的および動的ライブラリのコンパイル

4378 ワード

Opencv 2.4.12 arm詳細チュートリアルopencv 2に移植する.4.12 ubuntu12.04 GCC 4.3.2 1.まずコンパイラをダウンロードして、解凍して、環境変数を設定して、完成した後、端末でarmを入力した後にTabキーを押して、armの関連する内容が現れたら、配置が正しいことを表します;参照先:http://blog.csdn.net/luotuo44/article/details/8958990 2.cmake、sudo apt-get install cmake-gui 3をダウンロードします.以上の2つのステップが完了したら、コンパイルを行います.ネット上のチュートリアルは詳しく説明されていますが、ここではいくつかの質問しかありません.onion31s@ubuntu:~/cmake-gui//cmakeを起動してcmakeインタフェースで構成する第一歩:arm平台Opencv静态和动态库的编译_第1张图片
ステップ2:arm平台Opencv静态和动态库的编译_第2张图片
ステップ3:arm平台Opencv静态和动态库的编译_第3张图片
ステップ4:arm平台Opencv静态和动态库的编译_第4张图片
ステップ5:arm平台Opencv静态和动态库的编译_第5张图片
4.上記の構成に従って完成したら、下図の赤い線を引いた目次(自分で配置した目次に入る)に入る
onion31s@ubuntu:~/cd/home/onion31s/A31s_Source_lib/opencv_build onion31s@ubuntu:~/makeネット上の参考チュートリアルを考えると、多くの人がここでエラーを報告します.ここでエラーをまとめます:(1)エラーを報告します:Linking CXX executable.../../bin/opencv_test_calib3d ../../lib/libopencv_core.so: undefined reference to pthread_key_create'
../../lib/libopencv_core.so: undefined reference to
pthread_getspecific’ ……………….. collect2: ld returned 1 exit status make[2]: * [bin/opencv_test_calib3d] Error 1 make[1]: * [modules/calib3d/CMakeFiles/opencv_test_calib3d.dir/all] Error 2 make: * [all] Error 2
またはエラー:undefined reference to"dlopen"undefined reference to"dlysm"ソリューション:这里写图片描述ディレクトリのCMakeCacheを変更します.txt,CMAKE_EXE_LINKER_FLAGSはもともと空で、保険のため、-lpthread-lrt-ldlを加えて、以下の図:arm平台Opencv静态和动态库的编译_第6张图片(2)のエラー:......xxx.cpp internal compiler error:in vect_transform_stmt ,at tree-vect-stmts.c….. ソリューション:これはコンパイラのBugが低バージョンのコンパイラを変更して再操作することを提案しています.(3)「......could not read symbols:bad value」ソリューション:cd/home/onion 31 s/A 31 s_Source_lib/opencv_build/3rdparty/zlib/CMakeFiles/Zlib.dir/flags.makeはC_FLAGS=-w-WallをC_に置き換えるFLAGS=-03 -fPIC -w -Wall 5.エラーは上記の方法で解決し、make後、sudo make installを実行すると、コンパイルされたライブラリは指定したディレクトリの下に従います.
6.上記のインストールライブラリに入り、BUILD_をキャンセルしなければSHARED_LIオプションは、生産される.so接尾辞のライブラリファイルで、これらのライブラリファイルをボードの/libディレクトリにコピーします.7.Ubuntuでコンパイルする場合、コンパイル命令は以下の通りです.这里写图片描述のパスは、ライブラリファイルをインストールするパスに対応します.8.静的コンパイルの場合は、上記のコマンドを使用します.soライブラリファイルを置換する.aライブラリファイル、命令の最後に-staticを追加すると、ライブラリファイルをボードにコピーする必要はありません.直接コンパイルした後、コンパイルしたファイルをボードにコピーして直接実行できます.今、あなたの板にはopencvが書いたプログラムを走ることができます.
qq:3140606578