2017-10-12 144 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

相關問題