UNIX ユーザー向け Microsoft C++ の概要
このトピックでは、Visual Studio を初めて使用し、コマンド ラインまたは Visual Studio を使用して C++ で生産性を高めたいと考えている、各種 UNIX のユーザー向けの情報を提供します。 Visual Studio を Microsoft C++ コンパイラと共に使用すると、Windows をターゲットにすることができます。 また、リモート Linux マシン、MinGW-w64、Linux 用 Windows サブシステムなどの UNIX 環境で、GCC または Clang と共に Visual Studio IDE を使用することもできます。 Visual Studio で C++ を使用するには、C++ によるデスクトップ開発ワークロードをインストールする必要があります。 Visual Studio インストーラーを開いて、ワークロードをインストールしたり、オプションのコンポーネントを追加または削除したりします。 また、リモート Linux マシンをターゲットにする場合は、C++ による Linux 開発ワークロードをインストールします。 Android または iOS 開発の場合は、C++ によるモバイル開発ワークロードをインストールします。
コマンド ラインの使用
UNIX コマンド ライン環境を使用する場合と同様に、コマンド ラインから Microsoft C++ コンパイラを使用できます。 コマンド ラインの C と C++ コンパイラ (CL.EXE)、リンカー (LINK.EXE)、Microsoft バージョンの UNIX make ユーティリティである NMAKE.EXE を含むその他のツールを使用して、コマンド プロンプトからコンパイルします。
UNIX では、コマンドは /usr/bin などの共通のフォルダーにインストールされます。 Visual Studio の場合、コマンドライン ツールは Visual Studio のインストール ディレクトリにインストールされます。VC\bin サブディレクトリとそのサブディレクトリです。 UNIX とは異なり、これらのツールは普通のコマンド プロンプト ウィンドウでは利用できません。 コマンド ライン ツールを使用するには、C++ プログラムをコンパイルするために必要なパスと他の環境変数を設定する特別な開発者コマンド プロンプトを使用する必要があります。 詳細については、「コマンドラインでの C/C++ コードのビルド」および「チュートリアル: コマンド ラインでのネイティブ C++ プログラムのコンパイル」を参照してください。
コードのデバッグ
Microsoft C++ プロジェクト用の Visual Studio デバッガーは、コマンド ラインまたは IDE 内から使用できます。 /Z7、/Zi、/ZI (デバッグ情報の形式) スイッチを使用してコンパイルし、ソースのステップ実行を有効にします。 詳細については、「ネイティブ コードのデバッグ」および「C++ デスクトップ開発のための Visual Studio IDE の使用」を参照してください。
GCC または Clang でコンパイルされたプログラムの場合、Visual Studio によって、GDB、LLDB、または指定したカスタム デバッガーが呼び出されます。
Visual Studio のプロジェクト システム
Visual Studio プロジェクト システムは MSBuild と呼ばれます。 XML 形式のプロジェクト ファイルが使用されます。C++ プロジェクト ファイルの拡張子は .vcxproj です。 それぞれが別のセットのコンパイラ オプションや別の言語でビルドされている可能性がある複数のライブラリおよび実行可能ファイルから構成されるアプリケーションは、1 つのソリューションの一部である複数のプロジェクトに格納されます。 ソリューションは、複数のプロジェクトをグループ化するためのコンテナーの抽象化です。 プロジェクトに関する情報は、拡張子が .prj のプロジェクト ファイルに格納されます。 詳細については、「Visual Studio のソリューションおよびプロジェクト」および「C++ デスクトップ開発のための Visual Studio IDE の使用」を参照してください。 メイン メニューから、[ファイル]>[新規作成]>[プロジェクト] の順に選択すると、使用可能な Visual Studio プロジェクト テンプレートが表示されます。
Visual Studio 2017 以降では、CMake プロジェクトのサポートが追加されました。また、任意のビルド システム、またはプロジェクト ファイルのないソース ファイルのルーズ フォルダーで Microsoft C++ コンパイラーを使用するためのオプションも追加されました。 詳細については、「Visual Studio の CMake プロジェクト」および Visual Studio の "フォルダーを開く" プロジェクトに関する記事を参照してください。
Microsoft 固有の修飾子
Microsoft コンパイラには、Windows オペレーティング システムのプログラミングをサポートするために、標準 C および C++ プログラミング言語の拡張機能がいくつか実装されています。 これらの拡張機能は、ストレージ クラス属性、関数の呼び出し規約、ベース アドレス指定などを指定するために使用されます。 サポートされているすべての C および C++ 拡張機能の全一覧については、「Microsoft 固有の修飾子」を参照してください。
/Za
コンパイラ オプションを使用することで、C89 に対するほとんどの Microsoft 固有の拡張機能を無効にすることができます。 このオプションは、C89 に準拠する必要がある複数のプラットフォームで実行するコードを記述する場合にのみ推奨されます。 /Za
コンパイラ オプションの詳細については、「/Za
、/Ze
(言語拡張機能の無効化)」を参照してください。 C および C++ コンパイラの準拠の詳細については、Microsoft C/C++ 言語準拠に関する記事、および「非標準動作」を参照してください。
プリコンパイル済みヘッダー
Microsoft C および C++ コンパイラは、インライン コードを含む、C または C++ コードをプリコンパイルするためのオプションを提供します。 このパフォーマンス機能を使用して、安定したコードの本体をコンパイルし、ファイル内のコードのコンパイル済みの状態を格納します。さらに、後続のコンパイル中に、プリコンパイルされたコードと開発中のコードを結合できます。 安定したコードは再コンパイルする必要がないので、後続のコンパイルが高速化します。
既定では、プリコンパイル済みのコードはすべて、ファイル pch.h と pch.cpp (Visual Studio 2017 以前では stdafx.h と stdafx.cpp) 内で指定されます。 プリコンパイルされたヘッダーの詳細については、「プリコンパイル済みヘッダー ファイルの作成」を参照してください。
関連セクション
詳細については、「Windows 上での Linux プログラムの実行」を参照してください。