2016-07-28 8 views
0

나는 OS 이미지를 수정해야하는 Open Embedded/Yocto 기반 프로젝트를 상속 받았습니다. 새로운 python 모듈 인 pycrypto를 추가하고 싶습니다. 변경하기 전에 프로젝트가 잘 진행됩니다.파이썬 모듈을 크로스 컴파일하도록 BitBake를 어떻게 설정해야합니까?

나는 pycrypto에 대해 다음 BitBake 조리법을 추가 한 : python-crypto_2.6.1.bb로

DESCRIPTION = "Python crypto" 
SECTION = "devel/python"   
LICENSE = "PD" 
SRC_URI = "https://pypi.python.org/packages/source/p/pycrypto/pycrypto-${PV}.tar.gz" 
SRC_URI[md5sum] = "55a61a054aa66812daf5161a0d5d7eda" 
SRC_URI[sha256sum] = "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c" 
LIC_FILES_CHKSUM = "file://README;md5=453a552a607fd82384e25db312340e9a" 
S = "${WORKDIR}/pycrypto-${PV}" 
inherit setuptools 

.

그때 내 주요 OS 이미지 조리법이를 사용

PYTHON_INSTALL = " \ 
    python-ctypes python-subprocess python-threading python-json \ 
    python-pyopenssl python-audio python-bsddb python-codecs python-compile python-compiler python-compression python-core python-crypt python-curses python-datetime python-db python-debugger python-dev python-difflib python-distutils python-doctest python-elementtree python-email python-fcntl python-gdbm python-hotshot python-html python-idle python-image python-io python-lang python-logging python-mailbox python-math python-mime python-mmap python-multiprocessing python-netclient python-netserver python-numbers python-pickle python-pkgutil python-pprint python-profile python-pydoc python-re python-readline python-resource python-robotparser python-shell python-smtpd python-sqlite3 python-sqlite3-tests python-stringold python-syslog python-terminal python-tests python-textutils python-tkinter python-unittest python-unixadmin python-xml python-xmlrpc python-zlib python-modules python-pyserial python-misc python-mysql python-crypto\ 
" 

빌드가 실행 (bitbake my-image가) 모든 pycrypto의 소스를 검색하는 잘 갈 것 같다 때. 그러나 컴파일 후 을 시도하면 교차 컴파일 된 프로그램 인이 실행됩니다 (다른 아키텍처 용으로 빌드 됨). 이미지를 만드는 데 bitbake가 중지됩니다.

DEBUG: Executing shell function do_compile 
running build 
running build_py 
running build_ext 
running build_configure 
checking for gcc... arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=/media/parallels/build/tmp/sysroots/overo 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in `/media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/python-crypto/2.6.1-r0/pycrypto-2.6.1': 
configure: error: cannot run C compiled programs. 
If you meant to cross compile, use `--host'. 
See `config.log' for more details 
Traceback (most recent call last): 
    File "setup.py", line 456, in <module> 
    core.setup(**kw) 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/core.py", line 151, in setup 
    dist.run_commands() 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/command/build.py", line 127, in run 
    self.run_command(cmd_name) 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command 
    self.distribution.run_command(command) 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "setup.py", line 251, in run 
    self.run_command(cmd_name) 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command 
    self.distribution.run_command(command) 
    File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "setup.py", line 278, in run 
    raise RuntimeError("autoconf error") 
RuntimeError: autoconf error 
ERROR: python setup.py build_ext execution failed. 
WARNING: exit code 1 from a shell command. 
ERROR: Function failed: do_compile (log file is located at /media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/python-crypto/2.6.1-r0/temp/log.do_compile.6553) 

내가 64 호스트에서 구축하고 ARM 프로세서를 대상으로하고 있습니다 :

다음은 로그 파일입니다.

로그 파일의 조언은 합리적인 것처럼 보입니다. "컴파일을 시도한다면`--host '를 사용하십시오." - 유일한 문제는 입니다.은 --host를 사용합니까?

또한 기존 프로젝트 소스를 검색하면 --host의 다른 인스턴스가 사용되지 않으며 ARM 용으로 빌드 된 것이므로이 메시지가 나를 잘못 유도 할 수도 있습니다.

BitBake/automake/which-open-Embedded-toolchain을 구성하는 데 도움을 줄 수있는 사람이 있습니까? 그렇다면 모듈이 교차 컴파일 된 후에 내 호스트 컴퓨터에서 실행하려고 시도하지 않습니다. 건축물)?

감사합니다.

답변