2010年10月22日金曜日

MSB8012警告 プロジェクトのパス指定の事。

VS2008からVS2010への移行の際に増えたもの。
まぁあるべき警告だったかもしれない。これによってパスマクロの理解が必要になったとも言えるかも。

とりあえず簡潔に話す。




目的1:デバッグ構成の際はプロジェクト名のしっぽに_dを付けて、siraxxxlib_d.libという出力をしてた。
Releaseの場合はsiraxxxlib_r.lib。
目的2:出力フォルダをsiraxxxlib\build\に統一。
つまり、構成別でもフォルダは統一し、ファイル名だけ変えたい場合の話です。


以下、そのような場合の理想的な表記。

プロジェクトの構成プロパティより、
⇒全般
 ・出力ディレクトリ $(SolutionDir)build\
 ・ターゲット名 $(ProjectName)_d  ← ここだけ構成別に指定。
⇒ライブラリアン
 ・出力ファイル $(TargetDir)$(TargetName).lib ←ここは極力固定。

ここで"出力ディレクトリにターゲット名をくっつけたパス名"と"出力ファイル名"が違ってるとMSB8012が発生するようです。


◆新規作成時にある程度反映させたい場合
\build\にまとめる事だけはデフォとして設定可。

プロパティマネージャのDebug | win32のMicrosoft.Cpp.Win32.userを開き、
⇒共通プロパティ
 ⇒全般
  ・出力ディレクトリ $(SolutionDir)\build\
とする。
(ちなみにRelease|win32に入ってるMicrosoft.Cpp.Win32.userもこれと共通みたい)

これによって、新プロジェクト作成時はこの設定が適用され、構成別でもbuildフォルダへ出力されるが、ファイル名はソリューション作成後に構成ごとに変える必要がある。
⇒全般
 ・ターゲット名 $(ProjectName)_d  ←ここね。


◆ついでにインクルードディレクトリだかの指定の話。
これも2010になって変更された事。
ツール⇒オプションからはできないようになったっす。











正直迷った。


これも先ほどと同じく
プロパティマネージャ
 ⇒Debug | win32
  ⇒Microsoft.Cpp.Win32.use
にて追加できます。"VC++ディレクトリ"という欄からどぞ。











終わり。

0 件のコメント:

コメントを投稿