web-dev-qa-db-ja.com

c ++で記述されたQt5プログラムをUbuntu Touchにコンパイルする方法はありますか?

Qt5とC++でプログラムを作成しています。UbuntuTouch PreviewまたはUbuntuデスクトップアーム用にプログラムをコンパイルしたいと思います。

Nexus 7でこれらのシステムを実行しています。正しいC++コンパイラ(arm-linux-gnueabihf-g++)が見つかりましたが、Qt5を機能させるにはどうすればよいですか?

8
Johannes

簡単な方法

Ubuntu SDK Alphaの実験的な機能を使用できます。その利点は、クロスコンパイルする必要がないことです。

最初にデバイスに接続します:

  1. デバイスをコンピューターのUSBポートに接続します
  2. Qt Creatorを起動します
  3. [デバイス]タブをクリックします
  4. [有効にする]ボタンをクリックして、開発者モードを有効にします
  5. [ツール]> [Ubuntu]> [デバイス]> [有効化]> [UbuntuデバイスでのCppコンパイル(実験的)]に移動します。

その後、ハッキングを開始します。

  1. Qt Creatorでアプリのプロジェクトを開きます
  2. [ビルド]> [Ubuntu]> [UbuntuデバイスでC++プロジェクトをビルド](実験的)に移動します。

Building C++ Touch projects on the device

そしてお出かけ! :-)

挑戦が好きなら

デバイス上のアプリを手動でコンパイルすることも考えられます。次の(テストされていない)ステップを試してください。

  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. 選択したビルドシステム(cmake、qmakeなど)を使用してC++アプリをビルドします。

11
David Planella

別の提案があります(3番目の方法ですが、難しい):
1。取得する リナロツールチェーン armhf用
2。取得する リブリブリス およびplatform-api(phablet-teamから launchpad.net
3。デバイスから動的ライブラリを取得(/ lib/arm-linux-gnueabihf そして / usr/lib/arm-linux-gnueabihf /
4。パッチ mkspecs ために qmake
5。コンパイル
6。追加 <your_app> .desktop にファイル / usr/share/applications /
7。行を追加する /usr/share/qml-phone-Shell/Applications/applications.js (オプションの場合もあります)
8。アプリとリソースをプッシュする
9。シェルまたは電話を再起動します
10。あなたの働いたアプリ! (これをテストしました!)

3
user135193

前の回答に基づいた拡張命令。注意事項:この手順では、Ubuntu Touch用のPCでのQt/Qml開発について説明しますデバイスとのssh接続およびrequireリナロのようなクロスコンパイルツール

パート1:環境を作る

  1. GetUbuntu SDK
  2. ツールチェーンを取得:LinaroまたはwiaSudo apt-get install gcc-arm-linux-gnueabihfinstall toolchainそしてそれは依存関係です。
  3. この2つのライブラリlibhybrisおよびplatform-apiとarmhfのQt5ライブラリを取得します(デバイスから取得可能)またはすべてのlibを使用してtarballをダウンロード(tarballから必要なlibとヘッダーを、/ usr/arm-gnueabihf/libおよび/ usr/arm-gnueabihf/include).
  4. 変更を取得qmake config-mkspecsで展開します(たとえば、/ usr/share/qt5/mkspecs /)。展開されていないディレクトリ内-qmake.conf。コンパイルに失敗した場合-そのファイルのパス変数を変更する必要があります。
  5. Qt Creatorの場合、新しいコンパイルプロファイルを作成します:Compiling and deploymentsettings、on tabCompiler-新しいコンパイラーを追加(arm-linux-gnueabihf-gcc)、タブTools-新しいプロファイルを追加して指定デバイスタイプ-一般的なlinux-device、コンパイラ-追加されたものプロファイルQt-ジェネリック(再コンパイルされていないQtを使用しています!!!)、Qt mkspec-linux-arm-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)アプリの目的(名前、アイコン、パス、e.t.c。)
  3. 前と同じ次のステップ(すでに bash デバイスで):
    ファイルの編集( vi) /usr/share/qml-phone-Shell/Applications/applications.js、他のアプリがそのファイルに持っているのと同じように、ファイルにアプリの一部を追加します。と同じでなければなりません <app_name> .desktop ファイル
  4. シェルを再起動する(殺すことによって qml-phone-Shell プロセス)または電話を再起動(reboot -p
  5. ここからアプリを起動できます アプリ ページ!

テスト例と元の資料: EN命令 および RU命令 ダウンロードツールチェーンと必須ライブラリのリンク。

1
Dmitry Zagnoyko