rookie
2014年3月5日 16時49分
お世話になります。
Qtで作成したOpen cvの画像処理プログラムをArmadillo上で実行しようと試みているのですが、
Armadillo用にビルドするとOpen cvのライブラリがないとエラーが出力されます。
開発用のマシンではビルドして動作確認できております。
Armadillo上で実行できるようにするには、どうしたらよろしいでしょうか?
以下、エラーコードになります。
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib//libopencv_core.so when searching for -lopencv_core
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib//libopencv_core.a when searching for -lopencv_core
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib//libopencv_highgui.so when searching for -lopencv_highgui
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib//libopencv_highgui.a when searching for -lopencv_highgui
16:42:23: プロセス "/usr/bin/make" は正常に終了しました。
16:42:23: 起動中: "/usr/bin/qmake" /home/atmark/hoge/hoge.pro -r -spec linux-arm-gnueabihf-g++
16:42:24: プロセス "/usr/bin/qmake" は正常に終了しました。
16:42:24: Elapsed time: 00:17.
以下は実行時のエラーになります。
/tmp/hoge: error while loading shared libraries: libopencv_core.so.2.3: cannot open shared object file: No such file or directory
リモートアプリケーションは終了コード 127 で終了しました。
コメント
rookie
仰る通り、x86用のライブラリを記載しておりました。
下記のように指定することで、コンパイル時に出ていたエラーはなくなりました。
DEPENDPATH += /usr/arm-linux-gnueabihf/include/opencv2\
/usr/arm-linux-gnueabihf/include/opencv
INCLUDEPATH += /usr/arm-linux-gnueabihf/include/opencv2\
/usr/arm-linux-gnueabihf/include/opencv
LIBS += -L/usr/arm-linux-gnueabihf/lib -lopencv_core -lopencv_highgui
しかし、前スレで明記した実行時のエラーは未だ表示されたままで、プログラムが起動できておりません。
Makefileを添付致しますので、ご確認お願い致します。
> 勘なのですが、x86のライブラリをサーチするように記載していませんか?
> arm用のコンパイラーが x86 (または x86_64)のライブラリを見付けてしまって
> いるような気がします。
>
> コンパイル時のログ全部や、cmakeのコンフィグを添付してくれると分るかもしれません。
ファイル | ファイルの説明 |
---|---|
Makefile.txt |
at_yashi
/tmp/hoge: error while loading shared libraries: libopencv_core.so.2.3: cannot open shared object file: No such file or directory
は、「実行時に libopencv_core.so.2.3
がない」という意味です。
コンパイルした後、どのように /tmp/hoge を Armadillo に移動しているか教
えてください。 もしライブラリを入れていなければ、
libopencv_core.so.2.3
も Armadillo に移動してみてください。
http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2…
も参考になるかもしれません。
rookie
お世話になっております。
下記を参照して無事解決致しました。
Armadillo-840の製品マニュアル 14.6「オリジナルQtアプリケーションをatmark-distへ統合」を参照
作成したQtアプリケーションをatmark-distへ統合してから、
ユーザーランドのイメージファイル作成して、
作成したイメージファイルでArmadilloのフラッシュメモリを更新する必要がありました。
>
> /tmp/hoge: error while loading shared libraries: libopencv_core.so.2.3: cannot open shared object file: No such file or directory >
> は、「実行時に libopencv_core.so.2.3
がない」という意味です。
>
> コンパイルした後、どのように /tmp/hoge を Armadillo に移動しているか教
> えてください。 もしライブラリを入れていなければ、
> libopencv_core.so.2.3
も Armadillo に移動してみてください。
>
> http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2…
> も参考になるかもしれません。
>
at_yashi
2014年3月5日 19時10分
勘なのですが、x86のライブラリをサーチするように記載していませんか?
arm用のコンパイラーが x86 (または x86_64)のライブラリを見付けてしまって
いるような気がします。
コンパイル時のログ全部や、cmakeのコンフィグを添付してくれると分るかもしれません。