arm64 SBC인 Orange Pi 5를 실행하고 있습니다.Joshua Riek의 RK3588용 Ubuntu 22.04.4(프로젝트 링크).
구축하려고 해요오리 역, Qt 6.6.2에 의존하는 PS1 에뮬레이터입니다. apt를 통해 얻은 최신 arm64 Qt 버전은 6.2.4 버전입니다.
소스에서 Qt 6.6.2를 빌드 중인데 빌드된 라이브러리를 Duckstation cmake 빌드에 연결하는 데 문제가 있습니다.
Git에서 Qt 6.6.2 빌드
Qt 설치 프로그램 애플리케이션은 arm64에서 작동하지 않으므로 git에서 Qt6을 빌드하는 방법에 대한 Qt의 문서를 따라가서 찾았습니다.여기. 내가 취한 조치는 다음과 같습니다.
- Qt6 저장소를 복제하고 6.6.2 분기로 전환합니다.
$ git clone git://code.qt.io/qt/qt5.git qt6
$ cd qt6
$ git switch 6.6.2
- init-repository 스크립트를 사용하여 하위 모듈 초기화
$ perl init-repository
- 빌드 디렉터리 생성 및 구성
$ mkdir build && cd build
$ ../configure
기본적으로 다음과 같이 설정되는 -prefix 속성을 유지했습니다./usr/local/Qt-6.6.2
- 전체 Qt6 라이브러리를 빌드하고 설치합니다.
$ cmake --build . --parallel $(nproc)
$ sudo cmake --install .
이 플랫폼에서 전체 라이브러리를 구축하는 데는 한 시간 이상이 걸립니다. 설치 후 디렉터리 내용은 /usr/local/Qt-6.6.2
다음과 같습니다.
건축덕역
Duckstation readme의 빌드 지침에 따라 빌드 단계는 다음과 같습니다.
- 복제 저장소
$ git clone https://github.com/stenzek/duckstation.git duckstation
$ cd duckstation
- 빌드 디렉터리 생성 및 구성
$ mkdir build
$ cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
빌드를 구성하려고 할 때 Qt 6.6.2를 대상으로 하는 오류가 발생합니다.
빌드된 라이브러리를 CMake 빌드에 연결하는 방법은 무엇입니까?
/etc/ld.so.conf.d/Qt-6.6.2.conf
다음을 포함하는 ldconfig 파일을 만들어 보았습니다.
/usr/local/Qt-6.6.2/bin
/usr/local/Qt-6.6.2/lib
파일을 생성한 후 실행해봤습니다 sudo ldconfig
.
연결 문제가 아닌 경우 Qt6을 잘못된 위치에 설치했습니까, 아니면 빌드에서 일부 주요 구성 단계가 누락되었습니까?
참고로 필요한 Qt 버전을 6.2.4로 패치하고 소스코드를 살짝 수정하여 Duckstation을 성공적으로 구축할 수 있었지만 업데이트 등을 처리할 수 있도록 메인 브랜치를 구축할 수 있었으면 좋겠습니다. 더 쉽게.
답변1
-DQt6_DIR cmake 플래그를 지적해 주신 @steeldriver에게 감사드립니다.
명령에 플래그를 추가하여 다음과 같이 표시됩니다.
$ cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DQt6_DIR:PATH=/usr/local/Qt-6.6.2/lib/cmake/Qt6
이제 빌드 파일이 성공적으로 생성되었으며 프로젝트를 컴파일할 수 있습니다.
cmake -LAH
이러한 디렉토리 관련 플래그를 나열하는 방법이 궁금할 때 다음에서 배웠습니다.우편 엽서. Duckstation 프로젝트의 루트 디렉터리에서 실행할 때 Qt6_DIR 항목은 다음과 같습니다.
Qt6_DIR:PATH=Qt6_DIR-NOTFOUND
앞으로는 이 명령을 사용하여 빌드 구성 문제를 더 쉽게 해결할 수 있기를 바랍니다.