2017-10-12 269 views
0

我使用poky版本的yocto,并在我的yocto版本中添加了zbar库。我在http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/zbar/zbar_0.10.bb找到了一个现成的食谱,并对它进行了修改,以便与poky合作。我用imagemagick工作得很好,编译的zbarimg在目标板上工作。yocto:无法找到Python.h并且交叉编译失败

修改的配方可以在这​​里找到:http://paste.ubuntu.com/25725000/

当我开始配置Python支持(--with-python)来构建,一些依赖问题蹑手蹑脚起来,这林无法解决。

看起来好像编译器没有找到合适的标题,因为包含路径不包含合适的文件夹。

完整的编译器命令是: 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

你可以看到,sysroot变量设置,它似乎是一个正确的位置,并有/usr/include/python2.7那里,虽然其定位正好在主机系统包括路径。

编译器有一个警告:cc1: warning: include location "/usr/include/python2.7" is unsafe for cross-compilation [-Wpoison-system-directories]我不知道它为什么会发生,但它似乎像python2.7文件夹被适当地看着,只是不在sysroot(我的主机系统没有/ usr/lib/python2.7)

如果我去sysroot包括(/home/jlumme/imx_build/build-x11-pico-imx6ul/tmp/sysroots/pico-imx6ul-emmc/usr/include/)文件夹,我可以看到它有一个子文件夹python2.7。如果在这个usr/include文件夹下添加一个符号链接Python.h -> python2.7/Python.h,编译器会抱怨找不到下一个头文件。

所以对我来说,似乎,所有我应该做的是添加适当的'sysroot' + usr/include/python2.7为包括搜索文件夹,它会高兴地编译 - 但是我不知道如何..

完整的编译日志,请访问:http://paste.ubuntu.com/25725014/

回答

0

这是zbar配置脚本中的一个错误。

尝试继承pythonnative,以便配置脚本可以运行兼容的Python来知道去哪里看。

+0

嗨Ross,谢谢你的回复。我添加了依赖到zbar配置文件(http://paste.ubuntu.com/25751634/ < - 修改的DEPENDS),但我仍然得到相同的包括依赖关系,并以相同的方式失败。 我怎么能确认这种改变实际上改变了配置执行的方式?我对yocto相当陌生,所以我可能会做一些愚蠢的事情 – julumme

+0

虽然修改DEPENDS似乎没有帮助,但我直接在zbar的配置文件中添加了'CFLAGS + =“-I $ {STAGING_INCDIR} /python2.7”',并且它编译 - 但是,之后,我得到一些“QA错误”抱怨“文件/目录已安装,但没有在任何包中发货”,并指出的文件是'/usr/lib/python2.7/dist-packages/ zbar.la'和'/ usr/lib/python2.7/dist-packages/zbar.so'(以及.debug版本).. – julumme