はじめに
最近ではエッジデバイスでもPythonのような便利な開発言語が使えるようになってきていますが、時にはC/C++でがっつりプログラミングしたいときもありますよね。
そこで今回は、Visual StudioでUbuntu搭載デバイスのC/C++リモート開発環境を構築する方法を紹介したいと思います。
弊社のe-RT3やRaspberry Piなど、Ubuntu搭載のエッジデバイスのC/C++リモート開発環境を簡単に作ることができます。
環境
動作確認済デバイス(OS)
-
e-RT3 Plus F3RP70-2L1(Ubuntu 18.04 32bit)
横河電機のエッジコントローラです。 -
Raspberry Pi 4 Model B (Ubuntu Server 20.04 32bit)
これらのデバイスでは armhf アーキテクチャのパッケージが動作します。
また、Windows 10 搭載のPCでデバイスを操作しています。
ソフトウェアのバージョン
- Visual Studio Professional 2019 バージョン16.9.0
- Visual Studio Professional 2022 バージョン17.2.6
デバイスの準備
Raspberry Piの場合のみデバイスに必要なパッケージをインストールします。
sudo apt update
sudo apt install g++ make gdb gdbserver zip
Visual Studioの準備
-
Linux開発に必要なツールセットをインストールします。
Visual Studio Installerを開き、「C++によるLinux開発」2をインストールします。
-
Visual Studioとデバイスを接続するための設定を行います。
Visual Studioを起動し、「ツール」→「オプション」→「クロスプラットフォーム」→「接続マネージャ」を開き「追加」をクリックします。
項目 値 ホスト名 デバイスのIPアドレス ポート 22 ユーザー名 デバイスのユーザー名 認証の種類 パスワード パスワード ユーザーのパスワード IntelliSenseで使用するヘッダーをダウンロードします。
「接続マネージャ」→「リモートヘッダー IntelliSenseマネージャー」を開いて追加したデバイスを選択し、「ダウンロード」をクリックします。
プロジェクトの作成とデバッグ
-
プロジェクトの作成
Visual Studioを起動して新しいプロジェクトを作成します。
プロジェクトの種類に「C++」、「Linux」を指定して、「コンソールアプリケーション」を選択し、任意のプロジェクト名をつけてプロジェクトを作成します。
-
プロジェクトの設定
上のメニューの「プロジェクト」→「プロパティ」をクリックします。
構成に「Debug」、プラットフォームに「ARM」を指定し、「全般」→「リモートビルドマシン」に追加したデバイスを指定します。
「デバッグ」を開き、「リモートデバッグコンピュータ」に追加したデバイスを、「デバッグモード」に「gdbserver」を指定し「適用」をクリックします。
-
プロジェクトのビルドとデバッグ
構成を「Debug」、プラットフォームを「ARM」にしてソースコードの任意の場所にブレークポイントを張り、プログラムをビルド、実行します。
付録
ソースファイルの追加
ライブラリのリンク
インクルードパスの追加
デフォルト以外の場所にあるヘッダファイルを利用する場合は、インクルードパスの設定を行う必要があります。