GoogleのIoT向けOS “Fuchsia” のSDKの作成

GoogleのFuchsiaは、その使い方など情報が少ないのが悩ましいところです。

ソースを読み解きながら、いくつか判明した情報を整理していこうと思います。

デバッグビルドとリリースビルド

ビルドのやり方は以前こちらの記事で書いたとおりです。

GoogleのIoT向けOS “Fuchsia” をビルドしてみた

このまま実行した場合、デフォルトではデバッグビルドが出来上がります。もしリリースビルドを作成したい場合は、gen.pyを実行する箇所にて、–releaseオプションを付ければOKです。この場合、生成先ディレクトリ名も out/release-aarch64 のように分りやすい場所を指定しましょう。64bit-x86の場合なら下記のようになります。

ツールチェインとsysrootの作成

Fuchsia上で動くプログラムを作るためにはツールチェインとsysrootが必要です。

環境の取得は下記のように行います。Fuchsia本体と同様 jiri を使ってレポジトリをダウンロードします。

その後、ninjaやtoyenにパスを通してからninjaでビルドを実行します。

ここまででツールチェインがビルドできます。x86のLinuxで実行した場合、out/toolchain/clang+llvm-x86_64-linux のような場所に生成されるはずです。

次にsysrootを作成します。toolchainを作成した後、その環境下でそのまま作れます。toolchainの時は ninja -C out toolchain としましたが、sysrootの時はここを変えるだけです。

これで out/sysroot/ 配下に2つのアーキテクチャ別にsysrootが生成されます。

aarch64-fuchsia
x86_64-fuchsia

パスを通して使えるようにする

ツールチェインとはクロスコンパイラ・リンカ等、ビルドに使うツール一式を示します。sysrootとはターゲット環境に対応したincludeファイルやライブラリが格納されています。

Fuchsiaで動くプログラムを作るには、ツールチェインにパスを通してクロスコンパイラを使えるようにしたうえで、sysrootのincludeやlibを使ってプログラムをビルドしなければなりません。

とりいそぎbinにだけパスを通しておけば clang コマンドが効くようになります。
-isysroot オプションを使ってsysrootを指定してやることで、 Fuchsia用のプログラム開発ができると思います。
ビルド環境のパス設定の詳細は後日別途更新します。

スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告