いままでJetson NanoにVScodeをインストールして、そこでコーディングをビルドを行っていた。でも、リッチなIDEで開発したくなったという事と、やっぱり慣れた環境でやりたいということで、Windowsからビルドを行う環境を整えることにした。
やりたいこと
WindowsのホストPCからJetsonのコンパイルやらデバッグやらを行いたい。
ホストとJetsonをsshで接続。Visual Studioで作成したソースコードをJetsonへコピーする。コンパイルやデバッグの実行などはJetson上で行う。デバッグの情報をgdbサーバーによってホスト側へ送信することで、Visual StudioからJetsonのデバッガを実行しているような形にできる。
VisualStudioに各種パッケージをインストール
まず、ARM64アーキテクチャのCPU用にクロスコンパイルするためのパッケージをインストールする。
VisualStudioのツールバーの“ツール”から“ツールと機能を取得”をクリック。
“個別のコンポーネント”から“ARM64”というワードで検索をかける。
今回は上記の画像のパッケージをインストールした。
これでARM64アーキテクチャのクロスコンパイル環境が整ったはず。
プロジェクトファイル作成
プロジェクトを作成する。C++のクロスプラットフォームプロジェクトであれば何でもOKだと思う。
今回はコンソールアプリケーション(Linux)を選択。
Jetson Nanoへのssh接続設定を行う
プロジェクトが作成できたら、Jetson Nanoとの接続設定を行う。
ツールバーの”ツール”から”オプション”を開く。
“クロスプラットフォーム”⇒”接続マネージャー”の追加をクリックすると下記の設定ウィンドウが表示される。
あらかじめ確認しておいたIPアドレスをホスト名に入力し、ユーザー名やパスワード等を入力する。ポートは特別な設定をしていなければ22で大丈夫。
うまくいくと上記のように、接続リストにUbuntuのマシンが表示される。
次に、ビルド対象のアーキテクチャを指定する。
上記の中からARM64を選択
debugビルドを試す
試しに、Hello Worldをやってみる。
1 2 3 4 5 6 7 |
#include <cstdio> int main() { printf("hello from LibArgusApp!\n"); return 0; } |
自動的に作成される初期プログラムをそのまま利用。
一瞬で実行が終了してしまうので、returnの部分にブレークポイントを打っておく。
実行したときの画面がこちら。
ちょっとわかりにくいが、”Linux コンソールウィンドウ”の部分にprintfの内容がちゃんと表示されていることが分かる。
まとめ
こんな感じで、WindowsからJetsonなのへリモートビルドを行う環境を構築できた。
今回はprinfだけだったので、この環境でもう少し実践的なアプリケーションを作ってみようと思う。