VS2019でLinuxメモ 1
目的
Windows10でLinuxのプログラムを作れたら素敵。Visual Studioでそういった機能が存在するので使ってみた。これは日本語化dllの移植の布石になるはず。
概略は以下。WIndows 10上でHyper-Vを使ってUbuntuを立ててそこでビルド、デバッグする。必要なコード一式はvisual studio内のrsyncプログラムがコピーしてくれる。
Ubuntuの用意はHyper-Vのお手軽インストーラを使った。この後のフェーズでIDAによる解析をする必要があるので画面付きの方がよい。最終的には外部のグラフィックボード付きのマシンを立てる予定。これはwinで確認した限りグラフィックが載っているかどうかで起動チェックをしていたため。
GUI+グラフィックが対応すればWSL2を使ったほうがよいだろう。
準備
VM
Hyper-VにUbuntu 20.04のインストールする。お手軽インストールで十分。完了したらUbuntuがインターネットにつながるか確認。ネットワークアダプターの仮想スイッチはDefaultのままでよい。
最初にディスク容量を拡張する!初期は12GBしかなく、後から拡張しようとごちゃごちゃやっているとイメージが破壊されて起動しなくなったりしてダメージが大きいので最初にやりたい。Hyper-VのUbuntuではできないみたいな記事が見つかるが、下記の通りに実行するとちゃんとできる。
暫く待っていると更新が入る。更新がないとninja-buildが見つからないので必ず入れる。
必要なアプリを入れる。
-
$ sudo apt-get install openssh-server
これがないとSSHで接続できない -
$ sudo apt-get install cmake -y
-
$ sudo apt-get install g++ -y
アップデートするとgcc-9が自動で入るっぽいのでいらない? -
$ sudo apt-get install ninja-build -y
🐱👤
Visual Studioから 接続するためにPrivate IPを覚えて置く
後で使うのでboostを入れる。下記の通りに実施する。
時間がかかると書いてあるgit submodule update --init
の部分は本当に時間がかかるので、これも最初にやっておいた方が無難。
Visual Studio 2019
更新をかけて、本体のVersionを16.6以上にする。
メニューバーの「ツール」から「ツールと機能を取得」を開く。拡張機能インストーラが開く。
「C++によるゲーム開発」と「C++によるLinux開発」の二つが必要なのでインストールする。
完了したらメニューバーの「ツール」から「オプション」を開き、「クロスプラットフォーム」の「接続マネージャー」を選択。追加ボタンを押してVMを追加する。ホスト名はVMのPrivate IP、ID/passはVMにログインするものがそのまま使える。
メニューバーの「デバッグ」から「Linuxコンソール」を選択。Linuxコンソールウィンドウを表示する。
Project作成と設定、実行まで
適当なレポジトリにCMakeプロジェクトを作る。
プロジェクト直下にCMakeLists.txtができているので、右クリックメニューからCmakeの設定を実施。CMakeSettings.jsonファイルが自動でできて、JsonエディタのUIが開く。
CMakeSettings.jsonを右クリックしてCMake設定の編集を選択でもUIは開ける。
構成の+を押して「Linux-GCC-Debug」を選択。
リモートマシンを準備で登録したものにする。
構成を選択して、ターゲットを選択して実行するとリモートにrsyncされたコードがcmakeでビルドされる。結果はLinuxコンソールウィンドウに表示される。