在为 arm-linux 进行交叉编译时加载共享库 libz.so.1 时出错

在为 arm-linux 进行交叉编译时加载共享库 libz.so.1 时出错

我正在尝试在 Ubuntu 14.04 上交叉编译 opencv 应用程序以在 ARM 核心上运行。我可以使用以下命令在 Ubuntu 上顺利编译 open 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 会让我知道它是最新版本,没有什么可安装的。

有人可以帮我吗?

答案1

我遇到了同样的问题 - 这有点令人困惑。交叉编译器可能是 32 位的(我的情况),因此它抱怨缺少 32 位库:

sudo apt-get install zlib1g:i386

然后交叉编译器就可以工作了。

答案2

我遇到了同样的问题,但@Marek 建议的库在我的系统上没有安装候选。相反,我通过运行以下命令解决了该问题:

sudo apt-get install lib32z1

相关内容