Bonjour à tous,
Je développe actuellement une application devant utiliser de l'OCR, et j'ai donc besoin de OpenCV pour cela.
L'application doit fonctionner sur système embarqué utilisant un processeur de type ARM. Le système d'exploitation utilisé sur la cible est un linux patché avec Xenomaï. Le système hôte est également un linux de type OpenSuse.
J'ai cross-compiler OpenCV en suivant un tuto pour les ARM. Jusque-là, je n'ai pas eu de problème. L'installation c'est bien passée et j'ai bien mes librairies.
Je passe ensuite sous Eclipse afin de faire un petit code de test tout simple. Je renseigne tout les includes nécessaires à mon programme, ainsi que les librairies.
La compilation se fait bien, mais le linker me sort tout de même deux Warning qui sont les suivants :
1 2 3 4
| arm-v5te-linux-gnueabi-g++ -L/home/y.malbo/OpenCV-build/3rdparty/lib -L/home/y.malbo/Phytec-Xenomai-1.1/OSELAS.BSP-Phytec-phyCARD-PD10.2.0/platform-phyCARD-S/root/usr/lib -o "TestCam" ./main.o -lpthread -lrt -lopencv_core -lopencv_imgproc -lopencv_highgui
/opt/OSELAS.Toolchain-1.99.3/arm-v5te-linux-gnueabi/gcc-4.3.2-glibc-2.8-binutils-2.18-kernel-2.6.27-sanitized/lib/gcc/arm-v5te-linux-gnueabi/4.3.2/../../../../arm-v5te-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_core.so, needed by /home/y.malbo/Phytec-Xenomai-1.1/OSELAS.BSP-Phytec-phyCARD-PD10.2.0/platform-phyCARD-S/root/usr/lib/libopencv_imgproc.so, not found (try using -rpath or -rpath-link)
Finished building target: TestCam
/opt/OSELAS.Toolchain-1.99.3/arm-v5te-linux-gnueabi/gcc-4.3.2-glibc-2.8-binutils-2.18-kernel-2.6.27-sanitized/lib/gcc/arm-v5te-linux-gnueabi/4.3.2/../../../../arm-v5te-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_imgproc.so, needed by /home/y.malbo/Phytec-Xenomai-1.1/OSELAS.BSP-Phytec-phyCARD-PD10.2.0/platform-phyCARD-S/root/usr/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link) |
Cela n'empêche pas le fonctionnement, mais bon déjà, on se pose des questions.
Je récupère finalement l'exécutable obtenu et l'envoi sur la cible. Mes librairies sont en place dans le dossier /usr/lib. Je mets mon executable dans le dossier /home. Lorsque je lance l'executable, j'obtiens l'erreur suivante :
./TestCam: error while loading shared libraries: ../../lib/libopencv_core.so: cannot open shared object file: No such file or directory
J'en déduit aisément qu'il ne trouve pas la librairie opencv_core et qu'il va la chercher avec le chemin ../../lib/ donc un chemin relatif.
Soit, je peux mettre ma librairie directement dans le dossier /lib du système de fichier. La je réessaie et effectivement mon executable fonctionne. Cependant, j'aimerai que mon executable fonctionne quel que soit l'endroit ou il se trouve et avec la librairie dans le dossier /usr/lib.
On remarque que l'erreur en question correspond aux warning de Eclipse. Je pense donc que l'erreur vient de la compilation des librairies lors de l'installation de OpenCV, voire un chemin que je n'ai pas défini lors du cmake, cependant, je ne vois pas ce que c'est.
Quelqu'un a-t-il une idée ou a-t-il déjà eu ce problème ?
Merci d'avance.
Partager