c ++로 작성된 Qt5 프로그램을 Ubuntu Touch로 컴파일하는 방법이 있습니까?


9

Qt5 및 C ++로 프로그램을 작성 중이며 Ubuntu Touch Preview 또는 Ubuntu 데스크탑 암용 프로그램을 컴파일하고 싶습니다.

Nexus 7에서 해당 시스템을 실행하고 있습니다. 올바른 C ++ 컴파일러 ( arm-linux-gnueabihf-g++)를 찾았 지만 Qt5를 어떻게 작동시킬 수 있습니까?


@David Planella의 답변으로 문제를 해결했다면 "허용됨"으로 표시해야합니다.
fouric

답변:


11

쉬운 방법

Ubuntu SDK Alpha의 실험 기능을 사용할 수 있습니다. 그것의 장점은 크로스 컴파일 할 필요가 없다는 것입니다.

먼저 장치에 연결하십시오.

  1. 기기를 컴퓨터의 USB 포트에 연결
  2. Qt Creator 시작
  3. 장치 탭을 클릭하십시오
  4. 개발자 모드를 활성화하려면 활성화 버튼을 클릭하십시오
  5. 도구> Ubuntu> 장치> 활성화> Ubuntu 장치에서 Cpp 컴파일으로 이동 (실험적)

그런 다음 해킹을 시작하십시오.

  1. Qt Creator에서 앱 프로젝트 열기
  2. Ubuntu 장치에서 빌드> Ubuntu> Build C ++ 프로젝트로 이동하십시오 (실험적)

장치에서 C ++ Touch 프로젝트 빌드

그리고 당신은 간다! :-)

당신이 도전을 좋아한다면

기기에서 직접 앱을 컴파일 할 수 있습니다. 다음 (예상치 않은) 단계를 시도 할 수 있습니다.

  1. Ubuntu Touch Developer Preview를 실행하는 장치로 SSH 연결
  2. 필요한 개발 패키지를 설치하십시오. 필요한 것에 따라 목록에 패키지를 추가해야 할 수도 있지만 첫 번째 샷은 다음과 같습니다.

    sudo apt-get install qt5-default qtbase5-dev libqt5v8-5-dev qtdeclarative5-dev libqt5xmlpatterns5-dev qtscript5-dev qttools5-dev qt3d5-dev qtmultimedia5-dev libqt5svg5-dev qtdeclarative5-dev-tools qttools5-dev-tools qtlocation5-dev qtsensors5-dev qtpim5-dev qt-components-ubuntu

  3. 선택한 빌드 시스템 (cmake, qmake 등)으로 C ++ 앱을 빌드하십시오.


당신의 대답에서 많은 감사합니다! 우분투 SDK로 시도해 볼 것입니다. 다행히 Nexus 7은 완전한 기능을 갖춘 기기이므로 두 번째 방법으로 테스트했으며 잘 작동합니다.
Johannes

다행히 Nexus 7은 완전한 기능을 갖춘 장치이므로 Ubuntu 데스크톱 암으로 두 번째 방법을 테스트했지만 제대로 작동하지만 Ubuntu Touch Developer Preview는 이러한 개발 패키지를 찾지 못했습니다.
Johannes

David : 그렇게하려고하지만 요청한 각 항목에 대해 "패키지를 찾을 수 없습니다"라는 메시지가 나타납니다. Ubuntu 12.40과 함께 Pandaboard에서 일하고 있습니다. 도와주세요?
HMarioD

3

또 다른 제안이 있습니다 (세 번째 방법이지만 어렵습니다) :
1. armhflinaro 툴체인 가져 오기
2. libhybris 및 platform-api 가져 오기 ( launchpad.net의 phablet-team에서 )
3. 장치에서 동적 라이브러리 가져 오기 ( / lib / arm- linux-gnueabihf/ usr / lib / arm-linux-gnueabihf / )
4. qmakemkspecs 패치 5. 컴파일 6. <your_app> .desktop 파일을 / usr / share / applications /에 추가합니다. 7. / usr /에 행을 추가합니다. share / qml-phone-shell / Applications / applications.js (선택적 일 수 있습니다.) 8. 앱과 리소스를 푸시하십시오.




9. 셸 또는 전화를 재부팅합니다
. 10. 제대로 작동하는 앱입니다! (나는 이것을 테스트했다!)


1

이전 답변에 대한 확장 교육. 명심하십시오 :이 지침은 장치와의 ssh 연결 없이 Ubuntu Touch 용 PC에서 개발되는 Qt / Qml을 설명 하며 linaro와 같은 크로스 컴파일 도구가 필요합니다 .

1 부 : 제작 환경

  1. 우분투 SDK 받기
  2. 툴체인 얻기 : Linaro 또는 wia sudo apt-get install gcc-arm-linux-gnueabihf install 툴체인과 의존성.
  3. 이 두 라이브러리 libhybrisplatform-api plus armt 용 Qt5 라이브러리 (장치에서 얻을 수 있음)를 가져 오거나 모든 라이브러리와 함께 tarball 을 다운로드하십시오 ( tarball 에서 필요한 libs 및 헤더에서 / usr / arm-gnueabihf / lib/ usr / arm-gnueabihf / include ).
  4. 수정 된 qmake 구성mkspecs 에서 해제하십시오 (예 : / usr / share / qt5 / mkspecs / ). 내부 unrared 디렉토리 - qmake.conf . 컴파일에서 누락 된 것이 있으면 해당 파일의 경로 변수를 변경해야합니다.
  5. 들어 Qt는 창조주는 새 컴파일 프로필합니다에서 컴파일 및 배포 설정 탭에서 컴파일러 - 새로운 컴파일러 (추가 팔 - 리눅스 - gnueabihf-GCC를 탭에), 도구 - 새 프로필을 추가 지정 장치 유형을 - 일반 리눅스 장치를 컴파일러 - 사람, 당신이 추가되었는지 프로필 Qt는 - 일반 (내가 사용하지 컴파일 Qt는!), Qt는 mkspec - 리눅스 - 팔 gnueabihf-GCC. 컴파일에 필요한 전부입니다. 디버깅을 위해서는 다른 매개 변수를 지정해야합니다. 그리고 그 옆에, 소스에서 Qt를 다시 컴파일하는 것이 좋습니다. 그러나 나는 게으르다)

2 부 : 앱 배포

  1. Wia adb push / data / ubuntu / <some_path> 푸시 앱 및 리소스. OS는 / <some_path> 에서 찾을 수 있습니다 . / data / ubuntu 부분 은 없습니다 . 이 부분은 adb 만 필요합니다 .
  2. 다음으로 <app_name> .desktop 파일 을 만들어야 합니다.
    • adb 루트
    • adb 쉘
    • ubuntu_chroot 쉘 - 장치 에서 bash로 전환
    • cd / usr / share / applications- * .desktop 파일이있는 폴더로 이동
    • 그것들 중 하나를 복사하고 앱 목적 (이름, 아이콘, 경로 등)을 위해 ( vi로 ) 편집 하십시오
  3. 다음 단계 (이전의 장치에서 이미 bash 에 있음) :
    파일 편집 ( vi 포함 ) /usr/share/qml-phone-shell/Applications/applications.js , 다른 앱과 동일하게 파일에 앱 부분 추가 그 파일에 있습니다. <app_name> .desktop 파일 과 동일해야 합니다.
  4. 쉘을 재부팅 ( qml-phone-shell 프로세스 종료) 또는 전화를 재부팅 ( reboot -p )
  5. 이제 페이지 에서 앱을 시작할 수 있습니다 !

테스트 예제 및 원본 자료 : 다운로드 툴체인 및 필수 라이브러리에 대한 링크가 포함 된 EN 명령어RU 명령어 .


Ask Ubuntu에 오신 것을 환영합니다! 이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
RolandiXor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.