はじめに
エッジデバイスで規模の大きいプログラムをビルドすると時間がかかってしまうことがありますよね。
そこで今回はVisual StudioでUbuntu搭載デバイスのC/C++クロスコンパイル環境を構築する方法を紹介します。
WindowsのWSLでプログラムをビルドしてエッジデバイスにデプロイすることができます。
環境
動作確認済デバイス(OS)
- e-RT3 Plus F3RP70-2L1(Ubuntu 18.04 32bit)
横河電機のエッジコントローラです。armhf アーキテクチャのパッケージが動作します。
Windowsのバージョン
- Windows10 64bit バージョン1909
ソフトウェアのバージョン
- Visual Studio Professional 2019 バージョン16.9.6
デバイスの準備
必要なパッケージをデバイスにインストールします。
sudo apt update
sudo apt install libc6-dbg
※sudoers設定、proxy設定が必要な場合があります。
WSLの準備
WSLのインストール
-
Microsoft公式の手順に従ってWSLをインストールします。
WSLの設定
-
WSLを起動してログインします。
-
必要なパッケージをインストールします。
sudo apt update # armhf用のビルド環境をインストール sudo apt install crossbuild-essential-armhf # その他必要なパッケージをインストール sudo apt install make rsync zip
インストールの成功を確認します。
$ arm-linux-gnueabihf-gcc --version arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ arm-linux-gnueabihf-g++ --version arm-linux-gnueabihf-g++ (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
※PCがproxy環境下にある場合はproxy設定が必要です。
Visual Studioの準備
以前紹介した記事のVisual Studioの準備と同様の手順で行います。
IntelliSenceのヘッダーのダウンロードは不要です。
プロジェクトの作成とデバッグ
-
プロジェクトの作成
Visual Studioを起動して新しいプロジェクトを作成します。
プロジェクトの種類に「C++」「Linux」を指定して「コンソールアプリケーション」を選択し、任意のプロジェクト名をつけてプロジェクトを作成します。
-
プロジェクトの設定2
上のメニューの「プロジェクト」→「プロパティ」をクリックします。
プラットフォームを「x64」とし、「全般」→「プラットフォームツールセット」に「GCC for Windows Subsystem for Linux」を指定します。
「デバッグ」を開き、「リモートデバッグコンピュータ」に追加したデバイスを指定します。
「C/C++」→「全般」を開き、「Cコンパイラ」と「C++コンパイラ」に「arm-linux-gnueabihf-g++」を指定します。
「リンカー」→「全般」→「リンカー」に「arm-linux-gnueabihf-g++」を指定します。
-
プロジェクトのビルドとデバッグ
プラットフォームを「x64」にしてソースコードの任意の場所にブレークポイントを張り、プログラムをビルド、実行します。
補足
WSLのファイルへのアクセス
WSL2の場合、エクスプローラーに\\wsl$
と入力するとWSLのファイルにアクセスできます。
ビルドのみ行う方法
WSLでのビルドのみ行いたい場合は、「ビルド」メニューから対応する項目をクリックします。
出力ファイルはWindows上の<ソリューションディレクトリ>\<プロジェクトディレクトリ>\bin\<プラットフォーム>\<構成>\
に配置されます。
デバイス固有のライブラリの使用
デバイス固有のライブラリを使用したプログラムをビルドする場合は、ライブラリとヘッダファイルをプロジェクトに含める必要があります。