2009-08-07 8 views
4

저는 Make-based 코드베이스와 함께 sbox를 아무 문제없이 사용하고 있습니다. 지금 저는 scons 기반의 코드베이스를 사용하고 있습니다. 이상한 문제가 있습니다.Scratchbox의 Scons : g ++을 찾을 수 없습니다

scratchbox 내에서 scons는 g ++을 찾을 수 없습니다. 이 일을해야 할 때

에서는 hello.c 안녕하세요 오 : 예를 들어, 시도 같은 것들을 실행하는

그램 ++ -o 인사에서는 hello.c

그래서 아마 그 g ++ 문자열을 변수가 비어 있습니다. g ++가 존재하고 의 PATH - "which g ++"는/scratchbox/compilers/bin/g ++을 생성합니다.

동일한 소스가 스크래치 박스 외부에서 잘 작성되므로 scons 또는 코드베이스에 문제가 없어야합니다 ( ).특수 환경이 없어도 스크래치 박스 외부에서 변수를 설정할 수 있습니다.

내가 상징적으로이를 실행에는/usr/빈/g ++에/스크래치 박스 (Scratchbox)/컴파일러/빈은 /는 조금 더를 얻을 g ++, 다음하지만 (올바른 보이는 명령 ++ g을 생산)에 연결하면 생성합니다

sb_gcc_wrapper (g ++) : /스크래치 박스 (Scratchbox)/컴파일러/팔 - 리눅스 - cs2007q3-51sb3/빈/SBOX - 팔 - 없음 - 리눅스 - gnueabi-g는 ++ : 파일이 을 나열

해당 파일 또는 디렉터리 없다 선물.

PATH가/스크래치 박스 (Scratchbox)/컴파일러/bin이 포함 SBOX_REDIRECT_FROM_DIRS이는/usr/bin에 포함 SBOX_REDIRECT_TO_DIRS은/스크래치 박스 (Scratchbox)/컴파일러/bin이 포함되어 있으므로 나는 를 찾을 수 있어야한다고 생각합니다.

의견을 보내 주시면 감사하겠습니다. 나는 SCons는 내 전체 경로가 PATH 환경 변수를 전달하지 않습니다

답변

7

SCons는 파일 앞에 추가하지 않는 한 그것은 또한 PKG-설정을 찾을 수없는, 그래서 테스트 예를 들어, - 아마 관련 :

편집 감사합니다, 레이 'g ++'는별로 도움이되지 않습니다. 자신의 명시 적 경로

path = ['/scratchbox/compilers/bin/','/bin', '/usr/bin', '/sbin','/usr/sbin'] 
env = Environment(ENV = {'PATH' : path}) 

구축 또는 쉘에서

import os 
env = Environment(ENV = {'PATH' : os.environ['PATH']}) 
+0

감사를 PATH의 ENV 변수를 사용

Either set the compilers directly, e.g. env['CXX'] = '/scratchbox/compilers/bin/g++' 

-이 문제를 해결 기본적으로있다. PATH를 가져 오면 pkg-config 및 g ++ 위치 문제가 해결되었지만 sbox-arm-none-linux-gnueabi-g ++의 파일을 찾을 수 없습니다. 나는 나쁜 일을하고 "ENV = os.environ"을 사용하여 전체 환경을 가져 왔고, 이제 g ++가 작동합니다 ... – Ray2k

관련 문제