【发布时间】:2018-03-24 04:30:39
【问题描述】:
我正在使用 yocto 的 poky 版本,并在我的 yocto 构建中添加 zbar 库。我在http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/zbar/zbar_0.10.bb 找到了一个现成的食谱,并对其进行了一些修改以开始使用 poky。我用 imagemagick 让它工作得很好,编译后的 zbarimg 在目标板上工作。
修改后的配方可在此处获得: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/
【问题讨论】:
标签: gcc compilation cross-compiling yocto openembedded