2017-10-12 5 views
0

Im en utilisant la version poky de yocto, et en ajoutant la bibliothèque zbar dans ma compilation yocto. J'ai trouvé une recette readymade au http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/zbar/zbar_0.10.bb et l'ai modifié un peu pour travailler avec poky. Je l'ai bien fonctionné avec imagemagick, et le zbarimg compilé fonctionne sur le tableau cible.yocto: impossible de trouver Python.h et la compilation croisée échoue

La recette modifiée est disponible ici: http://paste.ubuntu.com/25725000/

Lorsque je procède la configuration support python (--with-python) à la construction, certains problèmes de dépendance ont rampé jusqu'à, qui Im incapable de résoudre.

Il semble que le compilateur ne trouve pas les en-têtes appropriés, car les chemins d'inclusion ne contiennent pas de dossier approprié.

La commande complète du compilateur est: arm-poky-linux-gnueabi-libtool: compile: arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/home/jlumme/imx_build/build-x11-pico-imx6ul/tmp/sysroots/pico-imx6ul-emmc -DHAVE_CONFIG_H -I. -I/home/jlumme/imx_build/build-x11-pico-imx6ul/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/zbar/0.10-r0/zbar-0.10 -I./include -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/python2.7 -I/usr/include/python2.7 -I/home/jlumme/imx_build/build-x11-pico-imx6ul/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/zbar/0.10-r0/zbar-0.10/include -Wall -Wno-parentheses -O2 -pipe -g -feliminate-unused-debug-types -c /home/jlumme/imx_build/build-x11-pico-imx6ul/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/zbar/0.10-r0/zbar-0.10/python/symbol.c -fPIC -DPIC -o python/.libs/python_zbar_la-symbol.o

Vous pouvez voir cette variable sysroot est réglée, et il apparaît comme le bon endroit, et il y a là /usr/include/python2.7, bien que son pointant vers la droite au niveau du système hôte include_path.

Il y a un avertissement du compilateur: cc1: warning: include location "/usr/include/python2.7" is unsafe for cross-compilation [-Wpoison-system-directories] que je ne sais pas pourquoi il arrive, mais il semble que le dossier est correctement python2.7 regardé, mais pas sous la sysroot (mon système hôte ne dispose pas/usr/lib/python2.7)

Si je vais dans le dossier sysroot include (/home/jlumme/imx_build/build-x11-pico-imx6ul/tmp/sysroots/pico-imx6ul-emmc/usr/include/), je vois qu'il a un sous-répertoire python2.7. Si sous ce dossier usr/include j'ajoute un lien symbolique Python.h -> python2.7/Python.h, le compilateur se plaindra du fichier d'en-tête suivant qui n'est pas trouvé.

Donc, pour moi, il semble, tout ce que je dois faire est d'ajouter le 'sysroot' + usr/include/python2.7 comme inclure le dossier de recherche approprié, il rassemblerait heureusement - mais je ne suis pas sûr de savoir comment ..

Le journal complet de compilation est disponible ici: http://paste.ubuntu.com/25725014/

Répondre

0

Il s'agit d'un bogue dans le script de configuration zbar. Essayez d'hériter de pythonnative pour que le script configure puisse exécuter un Python compatible pour savoir où chercher.

+0

Salut Ross, merci pour la réponse. J'ai ajouté la dépendance au fichier de configuration de zbar (http://paste.ubuntu.com/25751634/ <-dépenses MODIFIÉES), mais je reçois toujours la même dépendance d'inclusion, et il échoue de la même manière .. Comment pourrais-je confirmer que le changement change quelque chose dans la façon dont la configuration est exécutée? Im assez nouveau à yocto, donc je pourrais faire quelque chose de stupide – julumme

+0

Bien que modifier les DEPENDS n'a pas semblé aider, je viens d'ajouter carrément 'CFLAGS + =" -I $ {STAGING_INCDIR} /python2.7 "' au fichier de configuration de zbar, et il compilé - cependant, après que je reçois quelques "erreurs de QA" se plaindre de 'Fichiers/répertoires ont été installés, mais pas livré dans un paquet», et les fichiers ont été signalés étaient '/usr/lib/python2.7/dist-packages/ zbar.la' et '/ usr/lib/python2.7/dist-packages/zbar.so' (et aussi les versions .debug). – julumme