Visual Studio 2017でLinux用のC++アプリを作って、LinuxのPC上で実行してみよう!

こんにちはー、ニアです!

今回は、Visual Stuido 2017でLinux用のC++アプリを作成して、LinuxがインストールされているPC上で実行していこうと思います。

1. 用意するもの

(※1)Visual Studio 2017のインストーラーのワークロードから、「C++によるLinux開発」をあらかじめインストールしておきます。

2. Visual Studio 2017でLinuxアプリのプロジェクト作成

Visual Studio 2017を起動し、新しいプロジェクトを作成します。

新しいプロジェクトのダイアログでは、「Visual C++」>「クロスプラットフォーム」>「コンソールアプリケーション(Linux)」を選択し、プロジェクト名を入力します。

あとは、C++のコードを記述していきます。今回はサンプルなので初心の頃を偲んで「Hello World!」を表示するプログラムを作成します。

#include <stdio.h>

int main() {
	printf( "Hello World!\n" );
	return 0;
}

3. Linux PCでリモートビルド&デバッグ

ソースコードが完成したらビルドをしていくのですが、その前にリモート先のLinuxマシンにて、いくつか設定を行います、

3.1. Linux PCでSSH接続の設定

開発環境のPCからリモート先のLinux PCにSSH接続できるように、リモート先のLinux PCにて、SSH接続の設定をします。SSH接続には、パスワード認証の他、秘密キー(RSA鍵など)を使った公開鍵認証に対応しています。

せっかくなので、公開鍵認証を使ってみましょう。RSA鍵は「ssh-keygen」コマンドで作成できます。

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/xiia/.ssh/id_rsa): user_rsa

Enter passphrase (empty for no passphrase):[RSA鍵のパスフレーズ]
Enter same passphrase again:[RSA鍵のパスフレーズ(上と同じ)]

Your identification has been saved in user_rsa
Your public key has been saved in user_rsa.pub.

cd /home/user
mkdir .ssh

mv user_rsa.pub /home/user/.ssh/authorized_keys

作成した秘密鍵は、開発環境のPCに保存しておきます。

次に、sshd_configを編集して、RSA鍵による公開鍵認証を有効にします。

vi /etc/ssh/sshd_config
# RSA鍵で認証できるようにします
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile      .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody

# ↓

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody
sshd -t
service sshd restart

3.2. Linux PCにg++とgdb、gdbserverをインストール

必要に応じて、Linux PCにC++のコンパイラー「g++」とデバッガー「gdb」、リモートデバッグ用ツール「gdbserver」をインストールします。

apt install g++
apt install gdb
apt install gdbserver

3.3. 開発環境のPCからLinux PCにSSH接続

Linuxアプリの初回ビルド時、SSH接続のダイアログが現れるので、ホスト名やポート番号、ユーザー名を入力し、秘密鍵のファイルを選択して、接続ボタンを押します。

オプションの「クロスプラットフォーム」>「接続マネージャー」からでも設定することができます。

リモート接続に成功すると、プログラムのコンパイルが始まり、ビルドに成功すると、Linux PC上でアプリを実行することができます。

メニューバーから「デバッグ」>「Linuxコンソール」を選択すると、コンソール画面が表示されます。

3.4. ビルドしたファイルはどこにあるの?

Linuxアプリのプロジェクトをビルドすると、リモート先のLinux PCの「/home/[ユーザー名]/projects」ディレクトリーの中にソースファイルと実行ファイルがデプロイされます。

Nia12.png
もちろん、実行できますよ!

4. おわりに

Visual Studio 2017の登場で、今まではLinuxのemacsやvim、Eclipseだけでなく、WindowsのVisual StudioでLinux向けのアプリが作れるようになりました。

今回は、クライアント向けのLinuxにリモート接続してプログラムを実行していたのですが、接続先を変えればLinuxサーバー向けのアプリをWindowsで作ってデプロイすることができますね。

[END]

コメント

タイトルとURLをコピーしました