LoginSignup
1
0

More than 1 year has passed since last update.

マルチプラットフォームC++プロジェクト作成 01

Posted at

はじめに

マルチプラットフォーム対応のC++アプリを作成するとき、
大体CMakeを使用すると思います。

CMakeの一般的な使い方として、
WindowsではVisual Studioのソリューションを作成してビルドし、
LinuxではMakeFileを生成してビルド(make)します。

各プラットフォームでこれを行うのが面倒で、、、
どうにかVisual Studio内で完結できないものかと調べたところ、
Visual StudioのCMakeプロジェクトを使うことで一旦解決できました。

今回は、miniaudioというマルチプラットフォーム対応の
音声再生ライブラリをVisual Studio経由で実行できることを確認ましたが、
その中でまずプロジェクトの設定方法について紹介します。

目次

1. 開発環境
2. CMakeプロジェクトの作成
3. Linux ビルド/実行

1. 開発環境

私の実施した環境は以下です。

項目 詳細
Windows10(ホストOS) -
Visual Studio 2019 16.11.9
CMake 3.22.1
VirtualBox 6.1.28
Ubuntu(仮想環境のゲストOS) 20.04.3

2. CMakeプロジェクトの作成

Visual Studio の準備

Visual Studio Installerを起動して、「C++によるLinux開発」をインストールします。
image.png  image.png

プロジェクトの作成

新しいプロジェクトの作成 > CMakeプロジェクト
これでプロジェクトを作成します。
image.png

sampleというプロジェクト名で作成、実行してみました。
フォルダ構成は以下のようになっており、CMakeList.txtが2つできるのが特徴ですね。

sample ←プロジェクトTOP
  ├.vs    
  ├sample
  │  ├CMakeLists.txt ← ソースファイル記載したCMakeプロジェクトの本体
  │ ├sample.cpp
  │ └sample.h
  └CMakeLists.txt ← CMakeプロジェクトのTOP
   ↑ここから下層のCMakeList.txtを参照している

また、通常のソリューションと異なり、
ソリューションエクスプローラで「フォルダビュー」と「CMakeターゲットビュー」の表示方法が選択できます。
image.png

プロジェクトの実行(Windows)

ソースファイルの内容は自動生成から変えていないので、割愛しますが、
スタートアップアイテムの設定をして、F5でいつもどおりデバッグ実行ができました。
image.png

実行結果
Hello CMake.

3. Linux ビルド/実行

少し長いですが、Linuxでビルドするための設定を行います。

CMakeの設定にLinux Build設定を追加する

※以下の手順は「フォルダビュー」の表示状態で行います!!

プロジェクトTOPのCMakeList.txtを右クリックして、
プロジェクトのCMake設定を行います。
image.png

CMake設定の構成に「Linux-GCC-Debug」を追加します。
image.png

※初回の設定時、プロジェクトにCMakeSettings.jsonが生成されますが、
 これがGUIで設定した本体になります。jsonをエディタ等で編集することでも設定変更できます。

リモートマシンの設定

仮想環境のLinuxに対してSSHでアクセスするための設定を行います。
前の手順と同じく「CMakeの設定」画面にある、リモートマシン名をdefaultから変更します。

初回はdefault以外設定がないため、
ツール > オプション > クロスプラットフォーム > 接続マネージャから
仮想環境(ゲストOS)の接続設定を追加します。
image.png

設定後、「CMakeの設定」からリモートマシン名を設定して保存します。
image.png

サンプルアプリの実行

仮想環境を起動します。
次に構成を「Linux-GCC-Debug」に変更して、F5で実行します。
image.png

Linuxコンソールウィンドウに結果が表示されれば、成功です。
image.png

本稿は仮想環境でGCCコンパイルができることと、SSH接続ができることをベースに記載しているので、
わからないことがあったら別途調べてみてください。
(簡単に検索できるはずです!!!)

終わり

これでVisual Studioから移動せずに各プラットフォームのビルド/実行が可能になりました。
ここまではサクサク進むことができたのですが、miniaudioはちょっと手こずりました、、、
次回で、miniaudioをビルドする上で困ったことやコマンドライン引数をどのように設定するかなど紹介します!!!

参考

Visual Studio で CMake Linux プロジェクトを作成する
Visual Studio でターゲットの Linux システムに接続する

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0