このページの本文へ

車とスマホがつながるSDLの世界第4回

Ubuntu 14.04.5を用意すべし!

SDL対応アプリ開発環境の構築その1~車載機エミュレーターを作成する

2018年12月13日 11時00分更新

文● 柴田文彦 編集●村山剛史/アスキー編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

3. SDL用ディレクトリを作成して、gitコマンドをインストール

 まずは、車載機エミュレーターを作成するための作業用ディレクトリを作ろう。SDL Coreも、Generic HMIも、すべてそのディレクトリの中に作ることにする。念のために書き添えると、自分のホームディレクトリにいる状態で、以下のようなコマンドをタイプすればいい。

$ mkdir SDL
$ cd SDL

 これで、自分のホームの下に「SDL」ディレクトリを作成し、作業ディレクトリをそこに移動した。

 次にSDL Coreのソースコードを、このSDLの下にGitHubからダウンロードする。それには、やはりgitコマンドを使うのが簡単だ。Ubuntuには標準状態では、gitコマンドは含まれていないので、まずはそれからインストールする。

$ sudo apt-get install git

 このようにタイプしてから、要求に応じて管理者ユーザーのパスワードを入力すればいい。

 これでgitコマンドが使えるようになるので、clone機能を使って、GitHubから必要なソースコードをダウンロードする。

$ git clone https://github.com/smartdevicelink/sdl_core.git

 ネットワーク環境にもよるが、しばらく(数分程度)時間がかかるので、完了するのをじっと待とう。


4. ビルドツールとライブラリをインストールする

 ソースコードを入手したら、次はそれをビルドするためのツール(C++のコンパイラやリンカ)と必要なライブラリ類(ディペンデンシ)をダウンロードしてインストールする。

 ここでは、1つのコマンドで、必要なものをすべてまとめて入手してしまおう。GitHubのsdl_coreのページには、そのソースをビルドするためのディペンデンシについて簡単な説明はあるが、必要なコマンドラインは示されていない。しかし、それはGitHubのgeneric_hmiのページに示されている。

 ただしそのままでは、少なくともUbuntu 14.04.5の環境にとっては足りないものがある。ビルドするためにはUSBのライブラリが抜けている。また、後で示すようにChromiumブラウザーを使ってHMIを開くためには、NSS(Network Security Services)のライブラリも必要となる。それも含めて、ここでまとめてインストールしておこう。

$ sudo apt-get install cmake build-essential libavahi-client-dev libsqlite3-dev chromium-browser libssl-dev libudev-dev libgtest-dev libbluetooth3 libbluetooth-dev bluez-tools gstreamer1.0* libpulse-dev libusb-1.0 libnss3

 これにも数分から十数分程度かかるかもしれない。これで、この後SDL Coreをビルドするために必要なリソースは、すべてダウンロードしてインストールできるはずだ。


5. ソースコードをビルドする

 実際のビルド作業は、次の2ステップとなる。最初は、cmakeコマンドを使って、makeコマンドを実行するために必要な環境を作ること。次に、makeコマンドを使って実際にビルドするステップだ。

 cmakeを実行する前に、ビルド作業を実行するためのディレクトリを作ろう。ここまでに示した手順通りに作業してきたとすれば、今はホームの下のSDLディレクトリにいるはずだ。まずその下に、「sdl_build」ディレクトリを作って、そこに移動する。

$ mkdir sdl_build
$ cd sdl_build

 その場でcmakeコマンドを実行し、上でダウンロードしたsdl_coreディレクトリから、必要なものをビルド用のディレクトリにかき集めるイメージだ。

$ cmake ../sdl_core

 この作業は、ほとんどあっという間に終了する。これでmakeの準備が整ったので、すかさず実行しよう。

$ make

 この作業は、実行するマシンの処理能力やストレージの性能にもよるが、おそらく数分では終わらない。十数分から、場合によっては数十分程度かかるだろう。途中で管理者ユーザーのパスワードを2度ほど要求してくる。時間がかかるからと言って、makeコマンドを発行して放置してしまうと、そこから先に進まなくなるので注意が必要だ。

 makeが終わったら、エラーが発生していないか、メッセージの最後の付近をよく確認しよう。エラーがなければ、もう1つのコマンドを実行する。これにより、ビルドしたSDL Coreを実行可能な状態にインストールできる。

$ make install

 この処理の途中でも、1回だけ管理者ユーザーのパスワードを要求してくるが、処理は比較的短時間で終了するはずだ。


6. SDL Coreを起動する

 上の最後のコマンドによって、sdl_buildディレクトリの中には「bin」ディレクトリが作成される。まずは、そこに移動しよう。

$ cd bin

 このbinディレクトリの中には、SDL Coreを起動するためのシェルスクリプトが用意されている。それを使ってビルドされたSDL Coreの本体である「smartDeviceLinkCore」を起動することになる。

$ ./start.sh

 このコマンドは、ターミナルと同じプロセスでプログラムを起動するので、以後ターミナルの応答は停止する。ここでエラーが発生しなければ、正常に動いていると考えていいだろう。

 このコマンドを実行した直後に「共有ライブラリ(libemhashmap.so.0)が見つからない」といった意味のエラーが発生する場合がある。その際には、start.shスクリプトは使わずに、以下のようなコマンドを直接タイプすればCoreを起動できるはずだ。

$ LD_LIBRARY_PATH=/usr/local/lib ./smartDeviceLinkCore

この特集の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン