Qtブログ(日本語)

クロスコンパイルサポートの改善

作成者: 松本 忠顕|Apr 26, 2012 12:15:36 AM

この記事は Qt Blog の "Cross compiling Qt for the masses" を翻訳したものです。
執筆: dcarr, 2012年4月13日

Qt を特定のデバイスや BSP 向けにクロスコンパイルする時、一から始めるのは時としてとても大変な作業です。この負担を減らす為に、私達は Qt 5 において既存の configure/qmake のビルドツールや、関連するドキュメントを改善しようとしています。作業は 2 つの方向から進めています。

  • 一般的なクロスコンパイルのサポート
  • ターゲットの直接的なサポート

一般的なクロスコンパイルのサポートは以下の方法で改善していきます。

  • pkg-config のロジックの見直し
  • configure に -device フラグを追加
  • configure に -sysroot フラグを追加

サポートされるターゲットの一覧は こちら をご覧ください。


Raspberry Pi 向けのドキュメントにあるように、configure のオプションはここまで簡素化されました。

./configure -prefix <インストール先> -release
-device linux-rasp-pi-g++ -make libs
-device-option CROSS_COMPILE=<toolchain のパス>/bin/arm-none-linux-gnueabi-
-sysroot <sysroot のパス>

これにより生成されるビルドは Raspberry Pi 上での(シングルプロセスの) OpenGL ES 2 とキーボードをサポートします。

必要な変更は全て Qt 5 に取り込まれ、他の変更と同じようにレビューやテストをされているので、パッチを当てる必要はありません。当然ながらこれらのデバイスに向けられたコードの質は劇的に向上するでしょう。そしてこうしたハードウェア向けのプロトタイピング、開発、再利用も以前よりずっとやりやすくなるでしょう。白日の下にさらすことで、多くの改善が期待できるのです。

チップセットベンダー、ユーザー、BSP ベンダーやその他関連のある団体の方々に、それぞれのハードウェアに必要な mkspec と関連する Qt への変更の提供をお願いしたいと思います。それによって Qt 5 がデフォルトでサポートするデバイスの数を増やすことができます。オープンガバナンスへの移行により、こういった形でサポートを広げることがとても容易になりした。Qt 5 自体はもちろんですが、(制限のある)組み込み Linux プラットフォーム向けの開発が加速していることは、とても素晴らしいことです。