2017-12-04 23 views
1

나는 Yocto 2.2의 제조법에 대해 run. 파일을보고있다. 파이썬의 일부 구조는 다음과 같습니다.Bitbake의 Python 기반 실행 파일 실행 순서?

def do_whatever(d): 
    # [...] 
    bb.build.exec_func("sub_function_foo", d) 
    bb.build.exec_func("sub_function_bar", d) 

do_whatever(d) 

def sub_function_foo(d): 
    [...] 

def sub_function_bar(d): 
    [...] 

실행 된 함수는 순방향 참조 된 것처럼 보입니다. 이것이 정상적인 파이썬처럼 실행된다면, do_whatever이 실행될 때, sub_function_foosub_function_bar은 아직 정의되지 않았다.

어떻게 작동하나요?

bitbake exec_func 메커니즘이이 파일을 처리 한 후에 발생하는 큐 작업을 나중에 실행합니까?

아니면 최상위 레벨 호출 전에 정의를 넣는 Python이 아닌 사용자 정의 로더에 의해 처리됩니까? (그렇다면 단순히 올바른 순서로 코드를 생성하여 파이썬에 전달하는 것보다)

답변

1

파이썬 실행 파일 자체는 포함 된 함수 내용으로 bitbake에 의해 생성 된 디버그 출력입니다 그것들은 실제로 실행되지 않습니다. 따라서 디버깅에 사용할 수는 있지만 현재 형태로는 실행 가능하지 않습니다. 이것은 수정에 대해 생각해 봤지만 지금은 우선 순위가 아닙니다. 또한 'd'와 같은 객체를 생성하기 위해 데이터 스토어의 정적 복사본을 파일로 덤핑하는 것을 의미합니다.

참고로, 쉘 스크립트 실행 파일이 실제로 실행됩니다.