13

일부 빌드를 수행하기 위해 bitbake를 사용하는 OpenEmbedded 환경이 있습니다. 나는 bitbake가 멈추고 입력을 요구하는 곳에서 계속 진행되는 "대화식"을 원한다. 그러나 계속해서 빌드를 진행하지만 나는 불가능하다는 것을 알았다.bitbake 빌드에 명령 줄 변수를 전달할 수 있습니까?

내가 할 수 없어 이후 나는 빌드를위한 여분의 플래그를 전달하는 몇 가지 방법을 찾고 있어요. gcc의 -D 옵션과 같은 bitbake 빌드 플래그를 전달할 수있는 방법이 있습니까?

는 예 :

bitbake -Dfoo=bar oe-myimage 

은 따라서 oe-myimage 변수 foo의 빌드 과정에서 bar로 설정됩니다.

답변

2

아니요, 그런 메커니즘이 존재한다고 생각하지 않습니다. 하지만 당신은 뭔가를 할 수 있습니다.

"echo "foo = \"bar\"" >local.conf 

당신의 특별한 문제를 해결할 수 있을지 확신하지 못합니다. 또한 로컬 사이트 전체 변수에 대한 메커니즘이 있습니다. 홈 디렉토리에 .oe라는 디렉토리 아래에 'site.conf'파일이 있으면 bitbake는이를 읽고 모든 변수에 대해 전역 환경에 적용합니다. 그게 도움이 될지도 몰라? 당신이 해결하려고하는 문제를 정확하게 밝히지 않았다면 더 나은 방법이있을 수 있습니다.

14
bitbake -Dfoo=bar oe-myimage 

-D 플래그가 bitbake에 의해 인식되지 않습니다. 따라서 위의 방법을 사용하면 효과가 없습니다. 대신 다음 단계를 사용하여 명령 행에서 플래그를 지정할 수 있습니다. -

변수 foo를 내보내고 bitbake에서 인식 할 것으로 예상한다고 가정 해보십시오.

export foo="foobar" 

이를 내 보낸 OE-초기화 빌드-ENV을 소싱 한 후 BB_ENV_EXTRAWHITE 변수를 통해 bitbake 통보해야합니다. 이것은이 bitbake에 대한 변수 'foo는'화이트리스트

. oe-init-build-env 
export foo="foobar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo"  

을 의미하고, 따라서 빌드 중에 조리법 및 하위 프로세스에 그것을 볼 수 있습니다. 이 같은 표현을 통해 bitbake 내 foo 변수를 사용하는 bitbake 작업을 호출 할 수 있습니다 이후

-

${foo} 
4

당신은 할 수 있습니다 :

export foo="bar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo" 
bitbake oe-myimage 
3

을 수행 bitbake 다른 답변 아무 문제가 없지만 문서 번호 here과 같이 --postread 인수를 허용하십시오. 즉, 임시 설정 파일에 원하는만큼 bitbake 변수를 쓸 수 있으며 명령 줄에서 파일 이름을 지정하여 bitbake.conf 다음에 읽도록 ​​할 수 있습니다. 예를 들어 :

bitbake --read=./extra.conf 

나는 개인적으로 환경 변수를 다루는 것보다이 더 편리를 찾을 수 있습니다.