2017-03-21 2 views
1

내 Fedora VM에서 Valgrind를 컴파일하여 사용자 정의 된 임베디드 Linux 디바이스에서 실행하려고합니다. (Kinetis KL2x MCU w/ARM Cortex M4에서 Yacto를 실행합니다. CPU). 컴파일 및 QT 프로젝트를 장치로 크로스 컴파일하도록 QT IDE를 올바르게 구성했습니다. 비 QT 응용 프로그램을 컴파일 할 때 가장 좋은 방법이 무엇인지 궁금합니다. 나는 (http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 @ Valgrind의 소스 코드) 기존 프로젝트를 사용하여 (QT에서> 새 프로젝트> 프로젝트 가져 오기> 가져 오기 기존 프로젝트) 새 프로젝트를 만드는 시도하고이 오류가 점점 계속 :Valgrind를 임베디드 리눅스 디바이스에 크로스 컴파일 및 배포

17:20:46: Running steps for project valgrind... 
17:20:46: Starting: "/usr/bin/make" all 
make: *** No rule to make target `all'. Stop. 
17:20:46: The process "/usr/bin/make" exited with code 2. 
Error while building/deploying project valgrind (kit: ----) 
When executing step "Make" 
17:20:46: Elapsed time: 00:00. 

을 나는 확실하지 않다 그것을 해결하는 방법. Valgrind를 크로스 컴파일러 자체 (arm-poky-linux-gnueabi-g ++)를 사용하여 컴파일하는 것이 가능합니까? gcc 대신 크로스 컴파일러를 사용하도록 makefile을 변경하는 것이 더 낫습니다. 그런 다음 scp를 사용하여 파일을 내 장치로 보냅니다 (많은 다른 makefile 중 어떤 것을 사용합니까?). 아니면 내가 누락 된 더 좋은 방법이 있습니까? 시스템에는 자체 패키지 관리 도구 또는 컴파일러가 없습니다. 어떤 도움/입력 이라든지 대단히 감사하겠습니다.

오류 크로스 컴파일 환경 설정 후 조리법을 구축하는 동안 : 경우 yocto으로 valgrind를 컴파일 십자가의

[[email protected] valgrind]$ source /opt/poky/default/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi 
[[email protected] valgrind]$ bitbake -c build valgrind_3.12.0.bb 
Traceback (most recent call last): 
    File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 553, in <module> 
    main() 
    File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 535, in main 
    known_paths = addusersitepackages(known_paths) 
    File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 266, in addusersitepackages 
    user_site = getusersitepackages() 
    File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 241, in getusersitepackages 
    user_base = getuserbase() # this will also set USER_BASE 
    File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 230, in getuserbase 
    from sysconfig import get_config_var 
    File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/sysconfig.py", line 10, in <module> 
    'stdlib': '{base}/'+sys.lib+'/python{py_version_short}', 
AttributeError: 'module' object has no attribute 'lib' 

답변

1

예 툴 체인은 다음과 같습니다 여기

# setup workspace 
mkdir workspace && cd workspace 

# download Yocto sdk 
wget http://gumstix-yocto.s3.amazonaws.com/sdk.sh 

#Install it to workspace/sdk 
./sdk.sh 

source sdk/environment-setup-cortexa8hf-neon-poky-linux-gnueabi 

# download valgrind tarball 
wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 

# extract source 
tar jxf valgrind-3.12.0.tar.bz2 && cd valgrind-3.12.0 

# this fix issue with unknown arm architecture (see http://stackoverflow.com/questions/29514706/cross-compiling-valgrind-for-arm) 
sed -i -e "s#armv7#arm#g" configure 

./configure --host=arm-poky-linux-gnueabi --prefix="$(pwd)/out" 

make -j16 

make install 

, 설치 디렉토리는 당신이 할 수있는, out입니다 또한 ${SDKTARGETSYSROOT}/usr--prefix="${SDKTARGETSYSROOT}/usr"

으로 확인하십시오. 십자가의 기본적인 예를 들어 경우 yocto SDK로 컴파일

+0

있는 파일을 그러나 내가 이상한 얻을 보면 대상 장치에서 valgrind excutable을 실행하려고하면 오류가 발생합니다. – CompMan

+0

'--prefix'에 지정하는 디렉토리 경로는 대상 장치에서 valgrind를 복사하려는 정확한 경로 여야합니다. – Fred

0

내가 가장 쉬운 방법은 환경 구축 할 경우 yocto하여 그것을 구축하는 것입니다 생각 (비좁은 소스/oe_init_build_env) 과 -c 빌드 bitbake

와 빌드 Valgrind의 Valgrind의

다음 빌드 폴더 TMP/일/"플랫폼 이서"/ Valgrind의/"버전"/ 이미지/I가이 방법의 변형 된 버전을 사용하여 컴파일 할 수 있었다

+0

답장을 보내 주셔서 감사합니다. 내가 valgrind 제조법을 bitbake 할 때마다 (bitbake -c build valgrind_3.12.0.bb) File "/opt/poky/1.8.2/sysroots/i686-pokysdk-로 끝나는 여러 파이썬 오류가 발생합니다. "base"/ '+ sys.lib +'/ python {py_version_short} ', AttributeError :'module '객체는 linux/usr/lib/python2.7/sysconfig.py " 'lib'속성이 없습니다 – CompMan

+0

원래 게시물에 전체 출력을 추가했습니다. – CompMan

+0

글쎄, 유효한 환경을 가지고 있는지 확실하지 않습니다. valgrind 전에 이미지를 bitbaked 했습니까? – MatSch

관련 문제