ロゴ メインコンテンツへ
RSSフィード
「ソフトウェア開発」に関連する記事一覧

Visual C++でIncludeやLibなどの設定をバージョン間で共有する方法

2011/05/15
(この記事の文字数: 2157)
Qt 

Visual C++ 2010ではIncludeやLibのディレクトリを指定するために

ユーザディレクトリ\AppData\Local\Microsoft\MSBuild\v4.0

にあるMicrosoft.Cpp.Win32.userの中身を編集してXMLでパスを追加してあげるとIncludeなどのディレクトリを指定できました。

しかし、PCを変える度にこのファイルを上書きするのも面倒でした。しかもこの方法では2008と設定を共有できないので、ものすごく不便です。
実はそんなことをしなくても環境変数からIncludeやLibのディレクトリを指定できる方法がありました。しかもバージョン関係ない方法なので、2008と2010で同じIncludeディレクトリなどの設定を共有できる方法なのでおすすめです。たまたま、Qtのbinの中にあるバッチファイルの中身を見ていたらそんな記述があったのでこれに気づいたのでここにその方法を書いておきます。

まず、Visual Studio 2010を起動するときに

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

を起動しますが、このオプションに/useenvを追加して起動してやるとMicrosoft.Cpp.Win32.userではなくて環境変数の値がIncludeやLibのディレクトリに反映されます。すなわち環境変数を一時的にセットして、devenv /useenvで起動してやれば、Microsoft.Cpp.Win32.userの中身に関係なくその環境が反映された状態でVC++が起動します。

設定できる環境変数は次のようなものがあります。(大文字、小文字は関係ないです)

Path > 動的ライブラリファイル、実行ファイルのディレクトリ
Include > インクルードディレクトリ
Lib > 静的ライブラリファイルのディレクトリ
SourcePath > ソースファイルのディレクトリ

私はハードディスクのルートにVC 2010起動用のバッチファイルを置いて、そこからVC 2010を起動するようにしました。
これで、PCの方の環境変数を書き換えることもなく、Microsoft.Cpp.Win32.userの中身を書き換えることもなく、自分の好きな環境でVC++ 2010を起動させることができるようになりました。最初に言いましたが、これは2010だけでなく、下位のバージョンでも使える方法なのでsetEnv.batみたいな環境変数を設定するためのファイルを作っておいて、それをcallしてからVisual Studioを立ち上げるバッチファイルをバージョンごとに別で記述しておけば、どのバージョンでもsetEnv.batで設定した環境が適用されるので、ひとつの設定をバージョン間で共有できて便利です。

以下にバッチファイルの中身の例を載せておきますので参考にして下さい。ここでは最初にRootDirという環境変数にハードディスクのドライブパスを取得してから(PCを変えたときにドライブレターが変わっても対応できるようにするために)、それをベースにInclude、Lib、SourcePathなどを設定しています。

for /f %%F in ('chdir') do set RootDir=%%F
set QTDIR=%RootDir%Env\_GUI_Qt4.7.1_x86
set Path=%RootDir%Env;%Path%
set Include=%QTDIR%\include;%Include%
set Include=%QTDIR%\include\QtGui;%Include%
set Include=%QTDIR%\include\QtCore;%Include%
set Lib=%QTDIR%\lib
set SourcePath=%Include%
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
devenv.exe /useenv
 


追記----------------
 Visual C++ Express Editionで環境変数から設定を使いたい場合は

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
devenv.exe /useenv

ではなくて、代わりに

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
VCExpress.exe /useenv

とする必要があるようです。

chdir "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"
if exist "devenv.exe" devenv.exe /useenv^
else if exist "VCExpress.exe" VCExpress.exe /useenv

のように記述しておけば、どちらでも対応できます。

  このエントリーをはてなブックマークに追加  

<<「ソフトウェア開発」の記事一覧に戻る

「ソフトウェア開発」の前の記事 >>

コメント(0 件)



コンテンツロード: 0.0072 sec
Copyright(C)2006-2024 puarts All Rights Reserved