我在尝试为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
答案 0 :(得分:2)
是的,额外的“lib”会产生此警告,两条路径不匹配。实际上并不确定出了什么问题,最终的.lib文件最终会在lib目录中结束,即使MSBuild在构建完成消息中报告错误也是如此。从那个糟糕的消息中得出的结论,我猜测自动依赖的问题。当它们从自定义VCBuild移动到MSBuild时,VS2010引入了这种摩擦。
如果要删除警告,请将库项目的输出文件设置恢复为$(OutDir)$(TargetName)$(TargetExt),并将输出目录更改为..\..\build\lib\$(Configuration)
。