![최신 qt 버전을 이전 yocto 버전에 통합](https://linux55.com/image/202816/%EC%B5%9C%EC%8B%A0%20qt%20%EB%B2%84%EC%A0%84%EC%9D%84%20%EC%9D%B4%EC%A0%84%20yocto%20%EB%B2%84%EC%A0%84%EC%97%90%20%ED%86%B5%ED%95%A9.png)
우리 프로젝트는 역시 오래된 yocto를 기반으로 합니다.전사, 이는 SoM 공급업체에 의해 처음 수정되었습니다. 그런 다음 메인라인 커널이 필요한 GPU 기능을 지원하지 않았기 때문에 FreeScale/NXP 커널을 여기에 통합했습니다.
작동시키는 데 꽤 오랜 시간이 걸렸지만 이제 Qt 5.12에서 전환할 시간입니다.전사Qt 5.15(LTS)부터. 새로운 yocto 버전으로의 전환을 피하고 싶지만, 단지 Meta-qt5 레이어의 체크아웃만 변경하면 bitbake
다음과 같은 문제가 발생합니다.
ERROR: ParseError at meta-qt5/recipes-qt/qt5/qtwebengine_git.bb:83: Could not inherit file classes/features_check.bbclass
나는 이것이 일련의 비호환성 문제 중 첫 번째일 것이라고 예상했기 때문에 문제를 해결하는 가장 좋은 방법이 무엇인지 스스로에게 물었습니다.
나만의 Meta-qt5 브랜치를 시작하고 qt 5.15.8을 사용하도록 레시피를 변경하고 현재 Meta-qt5 브랜치에서만 커밋을 선택해야 합니까?
답변1
나는 지금 같은 문제를 겪고 있습니다 (Warrior 기반 BSP, Qt 5.15.2가 필요합니다). 이것은 내가 시도하고 찾은 것입니다.
- 버전이 있습니다위안qt5그리고5.15호환 가능전사. 그러나 이 버전은 다음 버전에서는 사용할 수 없는 클래스와 기능을 사용합니다.전사(예: feature_check, mime-xdg 등), 그래서 어떻게 작동할지 모르겠습니다.
- 새로운 Meta-qt5에 필요한 기능 세트를 포함하는 첫 번째 yocto 릴리스는 다음과 같습니다.던퍼, 그래서 다른 레이어를 호환되는 개정판으로 업데이트하려고 시도했습니다.던퍼, 그러나 아마도 내 프로젝트의 레이어 중 절반이 이 yocto 버전과 호환되는 버전을 제공하지 않을 것입니다.
요약하자면, 우리가 선택할 수 있는 옵션은 무엇입니까(또는 제가 이미 알고 있는 것):
- 수동 실행 없이 포팅된 레이어뿐만 아니라 최신 버전(poky, Meta-qt5 등)을 지원하고 호환되는 레이어를 업데이트할 수 있습니다.
- (경고: 아마도 나쁜 생각일 수 있음) 프로젝트에서 Meta-qt5를 제외하고 이미지를 빌드하고 SDK를 생성한 다음 프로젝트 SDK의 크로스 컴파일 및 rootfs를 사용하여 소스에서 Qt를 크로스 컴파일하십시오.
아직 다른 해결책을 찾지 못했습니다. 이 문제를 해결했거나 아직 시도 중인 경우 다음 이메일로 저에게 연락해 주세요.[이메일 보호됨]
PS 평판이 부족하여 SE에 대한 질문에 대해서는 언급할 수 없으므로 답변 섹션을 사용한 것에 대해 사과드립니다. OP의 솔루션을 찾을 수 있으면 답변을 업데이트하겠습니다.
답변2
이 게시물bitbake
Yocto 빌드에 통합될 수 있도록 시스템 외부에서 선택한 Qt 버전을 간단히 빌드하는 방법에 대한 튜토리얼이 제공됩니다 . 이것이 Qt에 의존하는 레시피에서 작동하는지 이해가 되지 않습니다.
지금은 그렇게 하고 싶은 충동도 없고 테스트할 시간도 없습니다. 답변을 성공적으로 재현하면 답변을 업데이트하고 수락할 것입니다.
답변3
한 가지 해결책은 Meta-qt5 계층을 포함하도록 esdk를 수정하는 것입니다. 지시하다여기에서 찾을 수 있습니다.
하지만 yocto Warriors와 호환되는 최신 Meta-qt5 버전이 5.14.2이기 때문에 많은 문제에 직면하게 됩니다. 공식적으로 지원되는 항목을 유지하는 것이 좋습니다. 그렇지 않으면 너무 많은 빌드 오류를 수정해야 합니다.