我正在尝试在 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