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

By | Date : 2017/06/05 ( Last Update : 2017/06/06 ) | 32 views

こんにちは~!ニアですよ~!

今回は、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!」を表示するプログラムを作成します。

 

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

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

 

3.1. Linux PCでSSH接続の設定

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

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

参考: 【シアたんとミョウガのサーバー乗り換え大作戦! Vol. 3】ターミナルソフトからリモートログインしてみよう

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

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

 

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

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

 

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

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

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

 

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

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

 

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

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

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

 

4. おわりに

いかがでしたか。

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

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

それでは、See you next!

 

数値計算で活躍しそう!?

 

この記事をシェアする
Chronoir.netのRSSフィードを購読する

About : ニア(Nia)

紅茶とコーヒーが好きな湘南生まれのプログラマー/ITエンジニアです。主にC#/C++/PHPを使ってプログラミングをしています。趣味は写真撮影と音ゲーです。時々イラストを描いています。プログラミングを勉強している方々と仲良くなりたいです! 興味を持っている分野:UWP/Xamarin/Android Wear/WPF/Windows/Visual Studio/WordPress/KUSANAGI/nginx

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*