최근 직장에서 빌드 시스템에서 비슷한 문제가있었습니다. 내가 만난 첫 번째 문제는 매우 이상한 일이었습니다. SCons가 완전히 들어간 디렉토리를 엉망으로 만들고있는 것처럼 보였습니다. SCons 사용자의 메일 링리스트와상의 할 때 os.system('cd ...')
또는 이와 유사한 것으로 변경 디렉토리를 변경할 수 없다는 말을 들었습니다. 병행하여. 필자는 그런 일을 전혀하지 않았지만 추가 검사를 통해 사용자 지정 빌더에서 사용했던 Python shutil.make_archive()
함수가 실제로 디렉토리를 변경하고 있음을 확인했습니다. 이를 변경했을 때 병렬 빌드가 훨씬 잘 작동했습니다. 따라서 사용자 정의 빌더가있는 경우 디렉토리를 변경하지 않아야합니다.
비록 여전히 의존성 시스템이 제대로 작동하지 않았던 것과 비슷한 방식으로 병렬로 빌드하는 동안 문제가 발생했습니다. 나중에 종속성이 원래 의도했던대로 내 잘못이 아니라는 사실을 깨달았습니다. 종속성을 디버깅하는 데 도움이되는 scons --debug=tree
명령 줄 옵션을 사용할 수 있습니다.
원래 SCons에는 병렬 빌드 시스템에 버그가 있다고 생각되었지만 실제로는 매우 견고하고 빌드 스크립트에서 오류가 발생하여 병렬 빌드가 중단된다는 것을 알게되었습니다.
오류가 발생했습니다. 디렉토리 경로 또는 파일이 존재하지 않는다면 비슷한 오류가 발생하고 솔루션을 도울 수 있습니다. – Brady
@ 브래디 : 네 번 예. 우리 코드 중 일부는 서로에 의존하고 scons를 사용하여 컴파일 순서를 결정합니다. scons가 병렬로 실행될 때 그 명령 중 일부는 엉망이됩니다. 적어도 그건 내가 의심하는 것 ... – Sardathrion