web-dev-qa-db-ja.com

arm-linuxのクロスコンパイル中に共有ライブラリlibz.so.1をロード中にエラーが発生しました

Ubuntu 14.04でopencvアプリをクロスコンパイルして、ARMコアで実行しようとしています。 Ubuntuでオープンcvアプリをうまくコンパイルできます

g++ test.c -o test -I /usr/include/opencv -I /usr/include/opencv2 -L /usr/local/lib/ -lopencv_core -lopencv_imgproc -lopencv_highgui

コンパイルされ、ディレクトリにtestl.binがあります。

ただし、ARMコアのコンパイラを変更すると

arm-linux-gnueabi-g++ test.c -o test -I /usr/include/opencv -I /usr/include/opencv2 -L /usr/local/lib/ -lopencv_core -lopencv_imgproc -lopencv_highgui

エラーが発生しました

error while loading shared libraries: libz.so.1: cannot open shared object file: no such file or directory.

このライブラリをインストールしようとすると、apt-getによって最新バージョンであり、インストールするものがないことがわかります。

誰か助けてくれますか?

4
Mark Corrigan

私は同じ問題を抱えていた-それは少し混乱しています。クロスコンパイラは32ビット(私の場合)である可能性があるため、32ビットライブラリの欠落について不満を言っています。

Sudo apt-get install zlib1g:i386

その後、クロスコンパイラが動作するはずです。

11
Marek

私も同じ問題を抱えていましたが、@ Marekによって提案されたライブラリには、システムにインストール候補がありませんでした。代わりに、次を実行して問題を解決しました。

Sudo apt-get install lib32z1
3