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


9

Qt5とC ++でプログラムを作成しています。UbuntuTouch 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デバイスでのC ++プロジェクトのビルド(実験的)]に移動します。

デバイスでのC ++ Touchプロジェクトの構築

そして、あなたは行き​​ます!:-)

挑戦が好きなら

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

  1. Ubuntu Touch開発者プレビューを実行しているデバイスに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 ++アプリをビルドします。


回答ありがとうございます!Ubuntu SDKで試してみます。さいわい、Nexus 7はフル機能のデバイスです。2番目の方法をテストしましたが、うまく動作します。
ヨハネス

幸いなことに、Nexus 7はフル機能のデバイスです。Ubuntuデスクトップアームで2番目の方法をテストしましたが、うまく機能しますが、Ubuntu Touch Developer Previewではこれらの開発パッケージが見つかりません。
ヨハネス

David:私はそうしようとしていますが、要求された各アイテムに対して「パッケージが見つかりません」と表示されます。Ubuntu 12.40を搭載したパンダボードで作業しています。手伝って頂けますか?
HMarioD 2013

3

別の提案(第3の方法が、ハード)があります:
1. GET リナロツールチェーンのためのarmhf
2. GET libhybrisおよびプラットフォームのAPI(のファブレット・チームからlaunchpad.net
デバイスから3のgetダイナミックのLIBS(/ libに/腕- linux-gnueabihfおよび/ usr / lib / arm-linux-gnueabihf /
4. qmakeのmkspecsにパッチを適用 5.コンパイル 6. <your_app> .desktopファイルを/ usr / share / applications /に追加7. / usr /に行を追加share / qml-phone-shell / Applications / applications.js(オプションの可能性があると思います) 8.アプリとリソースをプッシュします




9.シェルまたは電話を再起動します
。(私はこれをテストしました!)


1

以前の回答に基づいて拡張された命令。覚えておいてください:この手順は、デバイスとのssh接続なしで、Ubuntu Touch用にPCで開発するQt / Qmlについて説明し、linaroのようなクロスコンパイルツール必要とします

パート1:環境作り

  1. Ubuntu SDKを入手する
  2. ツールチェーンを入手する:Linaroまたはwia sudo apt-get install gcc-arm-linux-gnueabihf install toolchainとその依存関係。
  3. この2つのライブラリーlibhybrisplatform-apiおよびarmhfのQt5ライブラリー(デバイスから取得可能)を取得するか、すべてのライブラリーを含むtarballをダウンロードします(tarballから必要なライブラリーとヘッダーを入手し、/ usr / arm-gnueabihf / libおよび/に置きます。usr / arm-gnueabihf / include)。
  4. 変更されたqmake configを取得します-mkspecs解凍します(たとえば、/ usr / share / qt5 / mkspecs /にあります)。インサイドunraredディレクトリ- qmake.conf。コンパイルに失敗した場合-そのファイルのパス変数を変更する必要があります。
  5. 以下のためのQt Creatorは、新たなコンパイルプロファイル作成:でコンパイルと展開の設定、タブのコンパイラ -新しいコンパイラ(追加アームのlinux-gnueabihf-gccのをタブ上で)、[ツール] -新しいプロファイルを追加し、指定したデバイスのタイプを -一般的なLinuxのデバイスを、 コンパイラを -追加されたものプロファイル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を使用)
  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.