質問: "VS2015 x64 Native Tools Command Prompt" を使って, ある配布されたプログラムをビルドしようとしています. ``` cd build qmake nmake release ``` というように手順が書かれています. OpenCVとQtを使用しているようです. 注意点として,OpenCVとQtのbinのフォルダにPATHを通すように設定されていたので,コントロールパネル->システム->詳細設定から環境変数のところで設定しました. しかし,上記のようにコマンドを実行するとnmakeを実行した際に, fatal error C1003: Cannot open include file:...... というエラーが多数出てきます. OpenCVにもQtにもパスが通っていないようです. これまでXcode,Visual Studioしか使ったことがないので,コマンドラインでincludeやlibraryのパスを設定したことがなく,わかりません. どうすれば設定できるのでしょうか? よろしければ教えていただけると幸いです.
回答: Visual Studio 2015 の IDE でなくて開発者コマンドプロンプトを使っているということなので Visual C++ のコマンドラインツールはインクルードファイルやライブラリファイルを探す際に いくつかの環境変数を参照してくれます。 によると、 環境変数 `INCLUDE` からヘッダファイルを、環境変数 `LIB` からライブラリファイルを探すそうです。 開発者コマンドプロンプトのショートカットは Visual Studio の標準 `INCLUDE` `LIB` を設定する バッチを内部で呼び出しています。 今回の案件はそれに更に Qt や OpenCV のヘッダ・ライブラリを追記したいということなわけです。 Visual Studio 自体に悪影響を及ぼさないようにするには Visual Studio のインストールディレクトリの中にある `vcvars32.bat` 類は変更せず あなたのアカウントのユーザー環境変数に追記するのが適切でしょう。 (オイラはシステム環境変数を変更しない主義です) Qt と OpenCV をあなたのハードディスクのどこにインストールしたかで具体的な値は違いますが ユーザー環境変数 `INCLUDE` に Qt/OpenCV のヘッダファイルのあるディレクトリ ユーザー環境変数 `LIB` に Qt/OpenCV のビルド済みライブラリファイルのあるディレクトリ を追記(なければ新規作成)すると良いでしょう。 Visual Studio 開発者コマンドプロンプトの環境変数設定バッチは `INCLUDE` `LIB` を 上書きせず追記するので、これでよいかと。 `INCLUDE` `LIB` に追記するバッチファイルを組んで - 開発者コマンドプロンプト起動のたびに毎回手で実行するとか - 新しいショートカット [Qt 開発者コマンドプロンプト] を作り、 そのショートカットには `%comspec% /k mysetvars.bat` としておいて Qt 開発の際には常に [Qt 開発者コマンドプロンプト] を使う、とか 他にも方法はあります。