貧弱 Windows PC 環境で C/C++ 開発環境(VC++)を整える

この記事は私の PC （Windows7 32bitで C ドライブが 40GB しか無い）のような貧弱 PC 環境での C/C++ 開発環境(Visual C++)の構築方法と、私が作成した簡易開発環境である TTVC Developer を紹介する記事となっています。

Windows の開発環境と言うと Visual Studio が王道だと思いますが、最近の Visual Studio は私の PC みたいな貧弱な環境だとインストールすら出来ない（Cドライブの空き容量が足りない）のですよね。私の PC はもう 6 ～ 7 年近く前に購入したパーツを使用していまして、今となっては開発環境としても貧弱な環境となっております。特に C ドライブは SSD であるものの 40GB と（当時はそこそこの容量ではあったが）今では Visual Studio をインストールするのもままならない環境です（実際 Visual Studio Express 2013 for Windows Desktop はインストールできたが、 Vistual Studio 2015 では容量不足でインストールできなかった）。

私のやりたいプログラミングは C/C++ で Win32API を使用する分野で、エディタもお気に入りの xyzzy を使っているので、実際は Visual Studio みたいな超リッチな環境は必要なかったんですよね。それでしばらくは VS2013 のコンパイラだけ使ってたのですが、やはり最新のコンパイラ（特にC++14 等）を使いたかった訳です。なので色々と情報を集めていたら、Microsoft Build Tools を使えばコンパイラだけをインストールすることが出来ることを知りましたので、その辺をまとめておきたいと思います。ざっと説明すると Microsoft Build Tools でコンパイラのみをインストールして拙作簡易開発環境 TTVC Developer を使うというお話です。


# Microsoft Build Tools によるインストール

まずは Microsoft Build Tools をダウンロード・インストールします。

https://www.visualstudio.com/ja/downloads/?rr=http%3A%2F%2Flandinghub.visualstudio.com%2Fvisual-cpp-build-tools

上記 URL の一番下の方にある Build Tools for Visual Studio 2017 をダウンロードして実行します。

インストールする項目は、容量に余裕があるのならデフォルトのままで良いと思いますが、自分の場合は容量に不安があったので必要だった以下の項目のみ選択してインストールしています。

![1.png](https://qiita-image-store.s3.amazonaws.com/0/147853/b9b996e5-4414-468a-ec6c-a44a329ca843.png)

- VC++ 2017 v141 ツールセット (x86,x64)
  - cl.exe（コンパイラ）はここに含まれる
- スタティック分析ツール
  - 上記が依存しているコンポーネント（上記を選択すると自動で選択される）
- UWP 用 Windows 10 SDK (10.0.16299.0): C++
  - rc.exe（リソースコンパイラ）はここに含まれる
- UWP 用 Windows 10 SDK (10.0.16299.0): C#、VB、JS
  -- 上記が依存してるコンポーネント（上記を選択すると自動で選択される）

上記をインストールすると、MFC 等はありませんが、コマンドラインでのコンパイラ等のツールで Win32API を使用した開発が可能となります。これらの合計容量はおよそ 4.5GB でして、私の PC のような貧弱 PC でも優しい構成となっています。

参考として、私のインストール環境での cl.exe（コンパイラ）のパスは以下となっています。

C:\Program Files\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.12.25827\bin\Hostx86\x86\cl.exe


# TTVC Developer の紹介

CUI での開発を厭わないようでしたら上記のコンパイラをコマンドラインから使用して開発するのでしょうが、それは流石に茨の道でしょう。自分は前々から Visual Studio ほどリッチである必要はないがそれなりの GUI で開発したいと思っておりまして、無いのなら自分で作るかと作ったのが以下の TTVC Developer となります。自分としては自画自賛になりますが、そこそこ便利なモノが出来たんじゃないかと思っています（TTVC Developer 自身も TTVC Developer を使って作成しています。）

![main.png](https://qiita-image-store.s3.amazonaws.com/0/147853/d8de72a9-cab3-4c0f-8240-b6495d57b2e2.png)

http://childs.squares.net/program/ttvc_developer/index.html

エディタは内蔵しておらず、設定で好きなエディタと連携できるようにしてあります。理由としてはエディタは昔から世の中に数多くありまして、歴史があるぶん機能も充実しており、今から個人が開発しても十分使えるモノが出来上がるとは思えなかったからです。近年になっても Atom や Visual Studio Code などマルチプラットフォームなエディタが出てきたりと進化してますしね。
なので TTVC Developer はプロジェクト管理に焦点を当てて開発しています。参考にしたのは BCC Developer ･･･と言うより、 VC++ 版の BCC Devloper が欲しくて自分で作成したというのが一番最初の動機になると思います。
一応このソフトウェアの売りは以下かなと思っています（他のリッチな IDE でも備えているかもしれませんが）

- 他のプログラムとの連携
- スクリプト（Squirrel）による拡張機能

## 他のプログラムとの連携

他のプログラムとの連携に関しては設定から一通りの設定をすればメニューから起動出来るようになりますし、その際にプロジェクトの色々な情報（プロジェクト名やプロジェクトのファイル等の情報）に変数を介してアクセスできるようにしてあります。プロジェクトに登録してあるソースファイルヘッダファイルを grep する（起動する際にウィンドウが開いて検索ワードを入力できる）なんて事も可能ですし、その結果をダブルクリックすればその行をエディタで開けるようにもしてあります（grep で行番号を出力するようにしてあれば）。

![4.png](https://qiita-image-store.s3.amazonaws.com/0/147853/06364291-8931-f34f-db6b-8316793893d0.png)

また、左の方のツリービューでファイルを選択してポップアップメニューからそのファイルを引数等にしてプログラムを開く事も可能となっています。

![2.png](https://qiita-image-store.s3.amazonaws.com/0/147853/32cc2a65-8d18-48f4-7005-835061bd3c50.png)

## スクリプト（Squirrel）による拡張機能

スクリプトによる拡張機能を備えています。出来る事は現在は以下となっています。

- 外部プログラムメニューの指定・サブメニューの作成
- ビルド中の各タイミングでの処理の実行
- ビルド依存関係の記述（Makefile に追記できる）

先ほど紹介した他のプログラムを呼び出す機能ですが、通常の設定ダイアログから設定出来るのですが、スクリプトからも設定出来るようにしてあります。スクリプトから設定する場合に限りサブメニューを使ってメニューを構成することができるようになっています。

![3.png](https://qiita-image-store.s3.amazonaws.com/0/147853/bf5bdd2f-52f8-8ca5-dadd-ddf3c6916e52.png)

他に、ビルド中の各タイミングでスクリプトの関数を実行することが出来るようになっていたり、内部で設定・登録ファイルの内容で Makefile を作っておりその Makefile に依存関係の記述を追加することもできるようになっています。この辺のスクリプトによる拡張機能はマニュアルも一通り書きましたので、使用する際は参照して頂きたいです。
スクリプトによる拡張機能はまだベースを整えただけの段階で機能は多くは無いですが、ベースは出来上がっているので機能を追加していくのは少ない労力で出来ると思います。

## 今後

将来的にはオープンソースにする予定です。というか、オープンソースにしていない理由は自分の不勉強で git を使えないからです。これから勉強してソースを公開していく予定になっています。