4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Visual StudioでUbuntu搭載デバイスのC/C++リモート開発環境を構築する

Last updated at Posted at 2021-03-09

はじめに

最近ではエッジデバイスでも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の準備

  1. Linux開発に必要なツールセットをインストールします。
    Visual Studio Installerを開き、「C++によるLinux開発」2をインストールします。
    vsremote-1.png

  2. Visual Studioとデバイスを接続するための設定を行います。
    Visual Studioを起動し、「ツール」→「オプション」→「クロスプラットフォーム」→「接続マネージャ」を開き「追加」をクリックします。
    vsremote-2.png

    以下の項目を入力し、「接続」をクリックします。
    vsremote-12.png

    項目
    ホスト名 デバイスのIPアドレス
    ポート 22
    ユーザー名 デバイスのユーザー名
    認証の種類 パスワード
    パスワード ユーザーのパスワード

    IntelliSenseで使用するヘッダーをダウンロードします。
    「接続マネージャ」→「リモートヘッダー IntelliSenseマネージャー」を開いて追加したデバイスを選択し、「ダウンロード」をクリックします。
    vsremote-4.png

プロジェクトの作成とデバッグ

  1. プロジェクトの作成
    Visual Studioを起動して新しいプロジェクトを作成します。
    プロジェクトの種類に「C++」、「Linux」を指定して、「コンソールアプリケーション」を選択し、任意のプロジェクト名をつけてプロジェクトを作成します。
    vsremote-5.png

  2. プロジェクトの設定
    上のメニューの「プロジェクト」→「プロパティ」をクリックします。
    vsremote-6.png

    構成に「Debug」、プラットフォームに「ARM」を指定し、「全般」→「リモートビルドマシン」に追加したデバイスを指定します。
    vsremote-7.png

    「デバッグ」を開き、「リモートデバッグコンピュータ」に追加したデバイスを、「デバッグモード」に「gdbserver」を指定し「適用」をクリックします。
    vsremote-8.png

  3. プロジェクトのビルドとデバッグ
    構成を「Debug」、プラットフォームを「ARM」にしてソースコードの任意の場所にブレークポイントを張り、プログラムをビルド、実行します。
    vsremote-9.png

    プログラムがブレークポイントで止まれば成功です。
    vsremote-10.png

    出力はLinuxコンソールウィンドウに表示されます。
    vsremote-11.png

付録

ソースファイルの追加

  1. プロジェクトのアイコン上で右クリックし、「追加」→「新しい項目」をクリックします。
    vsremote-17.png

  2. 追加する項目の種類と名前を入力して、項目を追加します。
    vsremote-18.png

ライブラリのリンク

  1. プロジェクトのプロパティ→「リンカー」→「入力」→「ライブラリの依存ファイル」の「編集」をクリックします。
    vsremote-15.png

  2. 追加するライブラリの名前を入力します。以下はlibmを追加する場合の例です。
    vsremote-16.png

    e-RT3の場合 libm3を利用する場合はm3と入力します。)

インクルードパスの追加

デフォルト以外の場所にあるヘッダファイルを利用する場合は、インクルードパスの設定を行う必要があります。

  1. プロジェクトのプロパティ→「C/C++」→「全般」→「追加のインクルードディレクトリ」の「編集」をクリックします。
    vsremote-13.png

  2. ヘッダファイルが含まれるデバイス上のディレクトリのパスを追加します。
    vsremote-14.png

参考

  1. 産業用AIプラットフォーム | 横河電機株式会社

  2. C++ による Linux 開発 | Microsoft Docs

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?