pop↑ push↓

☆ (ゝω・)v

VS2019でLinuxメモ 1

目的

Windows10でLinuxのプログラムを作れたら素敵。Visual Studioでそういった機能が存在するので使ってみた。これは日本語化dllの移植の布石になるはず。

概略は以下。WIndows 10上でHyper-Vを使ってUbuntuを立ててそこでビルド、デバッグする。必要なコード一式はvisual studio内のrsyncプログラムがコピーしてくれる。

f:id:saito-matanki:20200524103258p:plain

Ubuntuの用意はHyper-Vのお手軽インストーラを使った。この後のフェーズでIDAによる解析をする必要があるので画面付きの方がよい。最終的には外部のグラフィックボード付きのマシンを立てる予定。これはwinで確認した限りグラフィックが載っているかどうかで起動チェックをしていたため。

f:id:saito-matanki:20200524103910p:plain

GUI+グラフィックが対応すればWSL2を使ったほうがよいだろう。

forest.watch.impress.co.jp

準備

VM

Hyper-VにUbuntu 20.04のインストールする。お手軽インストールで十分。完了したらUbuntuがインターネットにつながるか確認。ネットワークアダプターの仮想スイッチはDefaultのままでよい。

最初にディスク容量を拡張する!初期は12GBしかなく、後から拡張しようとごちゃごちゃやっているとイメージが破壊されて起動しなくなったりしてダメージが大きいので最初にやりたい。Hyper-VのUbuntuではできないみたいな記事が見つかるが、下記の通りに実行するとちゃんとできる。

qiita.com

暫く待っていると更新が入る。更新がないとninja-buildが見つからないので必ず入れる。

f:id:saito-matanki:20200524110126p:plain

必要なアプリを入れる。

  • $ 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を覚えて置く

f:id:saito-matanki:20200524105333p:plain

後で使うのでboostを入れる。下記の通りに実施する。

qiita.com

時間がかかると書いてあるgit submodule update --initの部分は本当に時間がかかるので、これも最初にやっておいた方が無難。

Visual Studio 2019

更新をかけて、本体のVersionを16.6以上にする。

メニューバーの「ツール」から「ツールと機能を取得」を開く。拡張機能インストーラが開く。

f:id:saito-matanki:20200524110443p:plain

「C++によるゲーム開発」と「C++によるLinux開発」の二つが必要なのでインストールする。

f:id:saito-matanki:20200524110555p:plain

完了したらメニューバーの「ツール」から「オプション」を開き、「クロスプラットフォーム」の「接続マネージャー」を選択。追加ボタンを押してVMを追加する。ホスト名はVMのPrivate IP、ID/passはVMにログインするものがそのまま使える。

f:id:saito-matanki:20200524111126p:plain

メニューバーの「デバッグ」から「Linuxコンソール」を選択。Linuxコンソールウィンドウを表示する。

f:id:saito-matanki:20200524113709p:plain

Project作成と設定、実行まで

適当なレポジトリにCMakeプロジェクトを作る。 f:id:saito-matanki:20200524110847p:plain

プロジェクト直下にCMakeLists.txtができているので、右クリックメニューからCmakeの設定を実施。CMakeSettings.jsonファイルが自動でできて、JsonエディタのUIが開く。

f:id:saito-matanki:20200524112310p:plain

CMakeSettings.jsonを右クリックしてCMake設定の編集を選択でもUIは開ける。

f:id:saito-matanki:20200524112003p:plain

構成の+を押して「Linux-GCC-Debug」を選択。 f:id:saito-matanki:20200524112731p:plain

リモートマシンを準備で登録したものにする。

f:id:saito-matanki:20200524112057p:plain

構成を選択して、ターゲットを選択して実行するとリモートにrsyncされたコードがcmakeでビルドされる。結果はLinuxコンソールウィンドウに表示される。

f:id:saito-matanki:20200524113822p:plain