Yocto Project를 사용하여 최소 라즈베리 파이 제로 이미지를 만들려고합니다. 나는 C에 익숙하지 않지만 컴파일 과정에서 'ws2811.c'를 컴파일하는 동안 왜 오류없이 raspbian OS가있는 다른 raspberry pi 2에 (전체 라이브러리)를 성공적으로 빌드 할 수 있는지 궁금합니다. 모든 힌트와 도움에 감사드립니다!Yocto Raspberry Pi - 설치 중 오류가 발생했습니다. rpi_ws281x 라이브러리
저장소 :
내 레시피 (저장소) 위치 'SCons는'루트에 구축을 위해 노력 붙어 있었다https://github.com/jgarff/rpi_ws281x
:
| DEBUG: Executing python function externalsrc_compile_prefunc
| NOTE: python-ws2812: compiling from external source tree /home/astor/Documents/poky/rpi-build/workspace/sources/python-ws2812
| DEBUG: Python function externalsrc_compile_prefunc finished
| DEBUG: Executing shell function do_compile
| scons: Reading SConscript files ...
| scons: done reading SConscript files.
| scons: Building targets ...
| CC ws2811.o
| ws2811.c: In function 'setup_pwm':
| ws2811.c:289:23: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
| dma_cb->dest_ad = (uint32_t)&((pwm_t *)PWM_PERIPH_PHYS)->fif1;
| ^
| cc1: all warnings being treated as errors
| scons: *** [ws2811.o] Error 1
| scons: building terminated because of errors.
| WARNING: /home/astor/Documents/poky/rpi-build/tmp/work/arm1176jzfshf-vfp-poky-linux-gnueabi/python-ws2812/1.0+git999-r0/temp/run.do_compile.11838:1 exit 2 from 'scons'
| ERROR: Function failed: do_compile (log file is located at /home/astor/Documents/poky/rpi-build/tmp/work/arm1176jzfshf-vfp-poky-linux-gnueabi/python-ws2812/1.0+git999-r0/temp/log.do_compile.11838)
:
sudo scons
Bitbake 레시피 작업 출력을 컴파일 그리고 내 제조법처럼 보이는이 방법 :
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9dcf340793a1d73c5211edc8238767dc"
SRC_URI = "git://github.com/richardghirst/rpi_ws281x.git;protocol=https"
PV = "1.0+git${SRCPV}"
SRCREV = "39afaac5f2b8b307d7d7b5f2f790fbb6759bda5e"
S = "${WORKDIR}/git"
DEPENDS = "swig-native"
inherit scons setuptools
do_compile_prepend() {
cd ${S}/
scons
${PYTHON} ${S}/python/setup.py install
}
답장을 보내 주셔서 감사합니다 @jku! 불행히도 그러한 해결 방법 (** uint32_t **에서 ** uintptr_t **로 변경)은 해당 포인터를 32 비트에서 64 비트로 변경하려고했습니다. 레시피는 성공적으로 빌드되었지만 ** test ** 파일 (이 라이브러리를 사용하여 수정해야합니다)은 64 비트 용입니다. 나는이 scons 구성 파일에 문제가 있다고 가정하지만, 다른 한편으로는 ** EXTRA_OESCONS **를 사용하여 **이 매개 변수를 추가 할 수 없습니다. ** - Wno-pointer-to-int-cast ** scons 빌드 도구 - 그냥 여기처럼 : [http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/mongodb/mongodb_git.bb?h=master]. – astor555
당신이하고있는 일을 정말로 알지 못한다면 int-cast-to-int 캐스트 캐스트를하지 마십시오. 경고는 정상적인 경우에 문제를 일으킬 실제 문제에 대해 알려줍니다. – jku
완전 동의하셨습니다! 내 가정은 사실입니까? Yocto 또는 Scons가 해당 라이브러리를 빌드하기 위해 적절한 크로스 컴파일러를 사용하지 않았습니까? – astor555