1

尝试为 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
4

1 回答 1

2

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

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

于 2013-10-01T19:36:24.773 回答