输出目录宏的Visual Studio相对路径似乎无法正常工作

时间:2013-10-01 19:11:44

标签: visual-studio-2012 visual-studio-macros

我在尝试为Chromium编译.sln时收到以下构建警告:

Warning 1   warning MSB8012: TargetPath(C:\chromiumtrunk\chromium\src\base\allocator\..\..\build\Debug\allocator_extension_thunks.lib) does not match the Library's OutputFile property value (C:\chromiumtrunk\chromium\src\build\Debug\lib\allocator_extension_thunks.lib). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets   1299    5   allocator_extension_thunks

抱怨这条道路:

C:\chromiumtrunk\chromium\src\base\allocator\..\..\build\Debug\allocator_extension_thunks.lib

与预期路径不匹配:

C:\chromiumtrunk\chromium\src\build\Debug\lib\allocator_extension_thunks.lib)

但...... "\base\allocator..\..\"应该取消...对吗?两个路径之间唯一的另一个区别是.lib输出到/ lib文件夹。这似乎是正确的。我不明白我应该如何正确地解决这个问题。

我很乐意提供所需的任何信息。我认为它只是一个简单的变量调整,但有点丢失..

C/C++ -> General -> Output Directory: '..\..\build\$(Configuration)\
C/C++ -> General -> Intemeradiate Directory: '$(OutDir)obj\$(ProjectName)\
Librarian -> General -> Output File: $(OutDir)lib\$(ProjectName).lib

1 个答案:

答案 0 :(得分:2)

是的,额外的“lib”会产生此警告,两条路径不匹配。实际上并不确定出了什么问题,最终的.lib文件最终会在lib目录中结束,即使MSBuild在构建完成消息中报告错误也是如此。从那个糟糕的消息中得出的结论,我猜测自动依赖的问题。当它们从自定义VCBuild移动到MSBuild时,VS2010引入了这种摩擦。

如果要删除警告,请将库项目的输出文件设置恢复为$(OutDir)$(TargetName)$(TargetExt),并将输出目录更改为..\..\build\lib\$(Configuration)