มีวิธีการรวบรวมโปรแกรม Qt5 ที่เขียนด้วย c ++ ไปยัง Ubuntu Touch หรือไม่


9

ฉันกำลังสร้างโปรแกรมด้วย Qt5 และ C ++ และฉันต้องการรวบรวมโปรแกรมของฉันสำหรับ Ubuntu Touch Preview หรือ Ubuntu desktop arm

ฉันใช้ระบบเหล่านั้นใน Nexus 7 ฉันพบคอมไพเลอร์ C ++ ที่ถูกต้องarm-linux-gnueabihf-g++แต่ฉันจะทำให้ Qt5 ทำงานได้อย่างไร


หากคำตอบของ @David Planella แก้ปัญหาของคุณแล้วคุณควรทำเครื่องหมายว่า "ยอมรับ"
fouric

คำตอบ:


11

วิธีง่ายๆ

คุณสามารถใช้คุณสมบัติทดลองของ Ubuntu SDK Alpha ความงามของมันคือคุณไม่จำเป็นต้องคอมไพล์

เชื่อมต่อกับอุปกรณ์ของคุณก่อน:

  1. เสียบอุปกรณ์ของคุณเข้ากับพอร์ต USB ของคอมพิวเตอร์
  2. เริ่มผู้สร้าง Qt
  3. คลิกที่แท็บอุปกรณ์
  4. คลิกปุ่มเปิดใช้งานเพื่อเปิดใช้งานโหมดผู้พัฒนา
  5. ไปที่เครื่องมือ> Ubuntu> อุปกรณ์> เปิดใช้งาน> การคอมไพล์ Cpp บนอุปกรณ์ Ubuntu (ทดลอง)

จากนั้นเริ่มแฮ็ค:

  1. เปิดโครงการแอปของคุณใน Qt Creator
  2. ไปที่ Build> Ubuntu> สร้างโครงการ C ++ บนอุปกรณ์ Ubuntu (ทดลอง)

สร้างโครงการ C ++ Touch บนอุปกรณ์

และคุณไป! :-)

ถ้าคุณชอบความท้าทาย

คุณสามารถรวบรวมแอพบนอุปกรณ์ด้วยมือได้ คุณอาจต้องการลองขั้นตอน (ยังไม่ทดลอง) ต่อไปนี้:

  1. SSH ลงในอุปกรณ์ของคุณที่รัน Ubuntu Touch Developer Preview
  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. สร้างแอป C ++ ของคุณด้วยระบบบิลด์ที่คุณเลือก (cmake, qmake, ฯลฯ ... )


ขอบคุณมากจากคำตอบของคุณ! ฉันจะลองกับ Ubuntu SDK โชคดีที่ Nexus 7 เป็นอุปกรณ์ที่ใช้พลังงานอย่างเต็มรูปแบบฉันทดสอบวิธีที่สองและใช้งานได้ดี
โยฮันเนส

โชคดีที่ Nexus 7 เป็นอุปกรณ์ที่ใช้พลังงานอย่างเต็มประสิทธิภาพฉันได้ทดสอบวิธีที่สองด้วยแขนเดสก์ท็อปของ Ubuntu และใช้งานได้ดี แต่ Ubuntu Touch Developer Preview ไม่พบแพ็คเกจ dev เหล่านั้น
โยฮันเนส

เดวิด: ฉันพยายามทำ แต่ฉันได้รับ "ไม่สามารถหาแพ็คเกจ" สำหรับแต่ละรายการที่ขอ ฉันทำงานใน Pandaboard กับ Ubuntu 12.40 คุณสามารถช่วยฉันได้ไหม?
HMarioD

3

มีข้อเสนอแนะอื่น (วิธีที่สาม แต่ยาก):
1. รับlinaro toolchainสำหรับ armhf
2. รับlibhybrisและ platform-api (จาก phablet-team ที่launchpad.net )
3. รับ libs แบบไดนามิกจากอุปกรณ์ ( / lib / arm- ลินุกซ์ gnueabihfและ/ usr / lib / แขนลินุกซ์ gnueabihf / )
4. แพทช์mkspecsสำหรับqmake
5. รวบรวม
6. เพิ่ม<your_app> เดสก์ทอปไฟล์/ usr / share / การใช้งาน /
7. สาย Add to / usr / share / qml-phone-shell / Applications / applications.js (อาจเป็นตัวเลือกฉันคิดว่า)
8. ผลักดันแอปและทรัพยากรของคุณ
9. รีบูตเชลล์หรือโทรศัพท์
10. แอปที่ทำงานของคุณ! (ฉันทดสอบสิ่งนี้!)


1

คำแนะนำเพิ่มเติมที่ก่อตั้งขึ้นจากคำตอบก่อนหน้า โปรดทราบ: คำแนะนำนี้อธิบายถึงการพัฒนา Qt / Qml บนพีซีสำหรับ Ubuntu Touch โดยไม่ต้องเชื่อมต่อsshกับอุปกรณ์และต้องใช้เครื่องมือคอมไพล์ข้ามเช่น linaro

ส่วนที่ 1: การสร้างสภาพแวดล้อม

  1. รับUbuntu SDK
  2. รับ toolchain: Linaroหรือ wia sudo apt-get install gcc-arm-linux-gnueabihfติดตั้ง toolchain และมันขึ้นอยู่กับการพึ่งพา
  3. รับlibhybrisสอง libs และplatform-api plus Qt5 libs สำหรับ armhf (สามารถหาได้จากอุปกรณ์) หรือเพียงแค่ดาวน์โหลดtarballพร้อม libs ทั้งหมด (จาก tarball libs และส่วนหัวที่คุณต้องการใส่ไว้ที่/ usr / arm-gnueabihf / libและ/ usr / arm-gnueabihf / include )
  4. รับการปรับแต่งqmake - ยกเลิกการติดตั้งในmkspecs (เช่น mine ที่/ usr / share / qt5 / mkspecs / ) ภายในไดเรกทอรี unrared - qmake.conf หากสิ่งที่ขาดหายไปในการรวบรวม - มันจำเป็นต้องเปลี่ยนตัวแปรพา ธ ในไฟล์นั้น
  5. สำหรับผู้สร้าง Qt สร้างโปรไฟล์การรวบรวมใหม่: ในการรวบรวมและการตั้งค่าการใช้งานบนแท็บคอมไพเลอร์ - เพิ่มคอมไพเลอร์ใหม่ ( arm-linux-gnueabihf-gcc ) บนแท็บเครื่องมือ - เพิ่มโปรไฟล์ใหม่และระบุประเภทอุปกรณ์ - ทั่วไปอุปกรณ์ลินุกซ์ คอมไพเลอร์ - อันที่คุณเพิ่มโปรไฟล์ Qt - generic (ฉันใช้ไม่ได้คอมไพล์ Qt ใหม่ !!!), Qt mkspec - linux-arm-gnueabihf-gcc มันคือทั้งหมดที่คุณต้องการสำหรับการรวบรวม สำหรับการแก้ไขข้อบกพร่อง - จำเป็นต้องระบุพารามิเตอร์อื่น ๆ และข้างๆนั่นคือคอมไพล์ Qt ที่มาจากแหล่งที่ดีกว่า แต่ฉันขี้เกียจมาก)

ส่วนที่ 2: การปรับใช้แอพ

  1. Wia adb push / data / ubuntu / <some_path> push app และทรัพยากร OS สามารถค้นหาได้ที่/ <some_path> หมายเหตุ: ไม่มีข้อมูล / / อูบุนตูเป็นส่วนหนึ่ง ส่วนนั้นจำเป็นโดยadbเท่านั้น
  2. ถัดไปต้องสร้างไฟล์<app_name> .desktop :
    • adb root
    • adb shell
    • ubuntu_chroot เชลล์ - สลับไปที่bashบนอุปกรณ์
    • cd / usr / share / applications - เข้าไปในโฟลเดอร์ที่มีไฟล์ * .desktop
    • คัดลอกรายการใด ๆ ของพวกเขาและแก้ไข (ด้วยvi ) เพื่อวัตถุประสงค์ในแอปของคุณ (ชื่อไอคอนเส้นทาง ฯลฯ )
  3. ขั้นตอนถัดไปเช่นเดียวกับก่อนหน้า (คุณอยู่ในอุปกรณ์ทุบตีที่อุปกรณ์):
    แก้ไขไฟล์ (ด้วยvi ) /usr/share/qml-phone-shell/Applications/applications.jsเพิ่มส่วนของแอพในไฟล์เช่นเดียวกับแอพอื่น ๆ มีในไฟล์นั้น ต้องเป็นเช่นเดียวกับในไฟล์<app_name> .desktop
  4. Reboot shell (โดยการฆ่ากระบวนการ qml-phone-shell ) หรือ reboot phone ( reboot -p )
  5. ตอนนี้คุณสามารถเปิดแอพได้จากหน้าแอพ !

ตัวอย่างการทดสอบและวัสดุดั้งเดิม: คำสั่ง ENและคำสั่ง RUพร้อมลิงก์สำหรับดาวน์โหลด toolchain และ libs ที่จำเป็น


ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
RolandiXor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.