私は現在、いくつかの 32 ビットコードを 64 ビットに (そして VS 2010 から VS 2012 に) 移植しています。32 ビットと 64 ビットの両方を生成できるようにするために、プロパティ ファイル (すべてのプロジェクト ファイルに含まれる) に次の内容を記述しました。
<PropertyGroup>
<CALRoot Condition=" '$(CALRoot)' == '' ">..\..\..</CALRoot>
<CALBuildSubDir Condition=" '$(Platform)' == 'Win32' ">32bit</CALBuildSubDir>
<CALBuildSubDir Condition=" '$(Platform)' == 'x64' ">64bit</CALBuildSubDir>
<CALBuildDir>$(CALRoot)\Build\VC12.0-$(CALBuildSubDir)\</CALBuildDir>
<OutDir>$(CALBuildDir)$(ExtraBuildDir)$(Configuration)\</OutDir>
<IntDir>$(CALBuildDir)$(ExtraBuildDir)$(Configuration)\obj\$(TargetName)\</IntDir>
</PropertyGroup>
でビルドするとPlatform = Win32
、すべてが期待どおりに機能します: CALUtils.{dll, exp,ilk,lib,pdb}
in
Build\VC12.0-32bit\Debug
、およびその他すべて (
CALUtils.log
inを含みます。ただし、 でBuild\VC12.0-32bit\Debug\obj\CALUtils
ビルドすると、 (そして
最終的にはdirectory になり
ます。それ以外はすべて、私が期待する場所 (または
); だけです)この 1 つのファイルが間違っています。Platform = x64
CALUtils.log
CALUtils.log
Build\VC12.0-\Debug\obj\CALUtils
Build\VC12.0-64bit\Debug
Build\VC12.0-64bit\Debug\obj\CALUtils
プロジェクト ファイルまたはプロパティ ファイルで文字列 を含む他の場所を見つけることができませんでしたが、VC12.0-
何か他のことが関係している可能性があります。ログファイルの名前にどのような追加変数が含まれるか、またはそれが異なる理由または方法で処理される (64 ビットビルドのみ) ことについて、誰か考えはありますか? それとも、これはどこかのバグですか?ect ファイルです。)