web-dev-qa-db-fra.com

Erreur lors du chargement de la bibliothèque partagée libz.so.1 lors de la compilation croisée pour arm-linux

J'essaie de compiler une application ouverte sur Ubuntu 14.04 pour qu'elle s'exécute sur un noyau ARM. Je peux compiler très bien l’application cv ouverte sur Ubuntu avec

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

Il compile et j'ai un testl.bin dans mon répertoire.

Cependant, lorsque je modifie le compilateur pour mon noyau de bras

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

J'ai rencontré l'erreur

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

Lorsque j'essaie d'installer cette bibliothèque, apt-get me laisse savoir que sa version est la plus récente et qu'il n'y a rien à installer.

Est-ce que quelqu'un peut m'aider?

4
Mark Corrigan

J'ai eu le même problème - c'est un peu déroutant. Le compilateur croisé peut être 32 bits (mon cas), donc il se plaint de la bibliothèque 32 bits manquante:

Sudo apt-get install zlib1g:i386

Ensuite, le compilateur croisé devrait fonctionner.

11
Marek

J'ai eu le même problème mais la bibliothèque suggérée par @Marek n'avait pas de candidats à l'installation sur mon système. Au lieu de cela, j'ai résolu le problème en exécutant:

Sudo apt-get install lib32z1
3
Vittorio Cozzolino