以前に VisualStudio で Linux での開発に向けて色々とやってみましたが、今はまた新しい方法があるようだったので試してみました。今回は Linux 側として Fedora23 を使用してみます。特殊なことはしていないため他のLinux系のものでも適用可能だと思います。
これらの環境設定の手順などを説明していきます。
環境の準備
Linux 側と Windows 側とでそれぞれ準備が必要です。
Linux側でコンパイラ・デバッガの準備
まず Linux 側でgdbserver や ssh サーバーが使えるように準備します。
インストールは以下のコマンドを実行しています。
$ sudo dnf install openssh-server gcc-c++ gdb gdb-gdbserver
sshサーバーが起動していないようならば、これを起動しておきます。
$ sudo systemctl start sshd
Windows側で VisualStudio の準備
“Visual C++ for Linux Development” という拡張プラグインがあるのでこちらを使用します。これは Visual Studio 2015 用となっているようです(2016/05末現在)。今回試したバージョンは v1.0.2 となっていました。
インストールが完了して、VisualStudio 2015 の C++ 関連のプロジェクトを確認してみると以下のように項目が増えていました。
動作確認
早速どのような感じで動くのかを試してみたいと思います。
VisualStudio で Linux / Empty Project を選択して、プロジェクトを作成します。
何もない状態なので、main.cpp を追加して、hello,world を作成してみました。
ここでこのプロジェクトのビルドを行うと、以下のように新規のウィンドウが開きます。Linux環境の IPアドレスや、sshでのログインユーザー名を入力します。
そして、 “Connect” ボタンを押すと、ビルドの続きが始まります。
この状態で Linux 側を確認してみると、ユーザー名/projects の以下にプロジェクトがコピーされて、実行体も ./bin/x64/Debug/ の中に作られていました。
このコピー先の projects については、このVisualStudioでプロジェクトのプロパティを開いて変更することができるようです。
こうやってできた実行体を VisualStudio から実行してみます。以下のように GDB が動き出す様が確認できました。
しかし標準出力の結果は確認することができませんでした。ブレークポイントを以下のように設定して実行してみると、うまく停止することもできました。
他のプロジェクト設定など
今回は 64bit の Linux が対象だったのでそのままでしたが、32bit だったりする場合には、プロジェクト構成を x64 から x86 を選ぶようでよいようです。しかしながら、リモートは 64bit linux でアプリを 32bit(x86) という場合についてはこの切り替えができないようです。
今回は実行体でしたがライブラリを作ることも可能なようです。
staticライブラリとdynamicライブラリの2つも選択可能となっていました。
まとめと次回予告
以前に紹介した方法よりも手軽に Linux ターゲットとしたプログラムを Visual Studio で開発できることが確認できました。
デバッガが機能しそうな点も確認できたので、次回以降でどのくらいデキるのかを見ていきたいと思います。また実際にはスタティックライブラリの作成・利用なども必要になってくるのでこれらについても再確認していきたいと思います。=> 再確認しました
参考情報
これらの内容については “Visual C++ for Linux Development” を参考にしました。Microsoft の VC Blog はなかなか面白いですね。