[英]Rebuild fails where Clean/Build succeeds in Visual Studio 2010
我在一个解决方案中创建了两个项目,一个名为 vm 的 static 库和一个名为 vmx 的控制台应用程序。 我使用Framework和References的新方法来为vmx创建vm的依赖。 我还在这两个项目中添加了 x64 平台。
现在,当我 select 重建解决方案时,我得到了这个 output:
1>------ Rebuild All started: Project: vm, Configuration: Debug Win32 ------
1> vm.c
1> vm.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vm.lib
2>------ Rebuild All started: Project: vmx, Configuration: Debug Win32 ------
2> main.c
2>LINK : fatal error LNK1104: cannot open file 'D:\Shared\Dynos\Lib\Win32\Debug\vm.lib'
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
好像 vm.lib 在编译 vmx 之前在构建后被删除。
如果我 select 清洁解决方案,然后构建解决方案,我得到这个 output:
1>------ Build started: Project: vm, Configuration: Debug Win32 ------
1> vm.c
1> vm.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vm.lib
2>------ Build started: Project: vmx, Configuration: Debug Win32 ------
2> main.c
2> vmx.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vmx.exe
========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
一切都好。
有人可以向我解释这里发生了什么吗?
谢谢
我最近也遇到了这个问题,经过多次敲击,我意识到输出目录在几个项目中是相同的。 因此,项目A可以很好地重建,但是当项目B“重建”时,它将清除输出目录,包括projectA的.lib和.dll文件,并且后续项目重建将失败。
对于我们的自动构建,我们现在的修复方法是对解决方案进行清理,然后构建,而不是进行重建或清理/重建。 显然,替代方案是将项目更改为每个都有自己的输出目录。
希望有人帮助!
我找到了解决问题的方法。 解决方案是不在项目设置中使用框架和引用功能,并且只使用旧的Project Dependencies系统。 我删除了我的引用并单击了Project Dependencies对话框中的复选框,现在一切正常。 奇怪的!
我认为框架和参考仅适用于C#项目,对于C ++项目应该避免使用。
1)可能是一些依赖问题
要么
2)在重建期间可能会保留一些旧的中间文件,这些文件在清理期间被删除,并在新建期间被新的正确文件替换。
对我来说,这是在下一个项目构建之前已经清理的中间目录。 这真的令人困惑,因为我不知道究竟会分成什么内容,我的解决方案和项目文件都在目录中
如果解决方案文件* .sln和引用的项目文件* .vcxproj都在一个目录中,则将
$(TargetName)\\
添加到ProjectProperties > ConfigurationProperties > General > Intermediate Directory
。 这对我来说是必需的,因为我也在其他解决方案中使用该项目。
我遇到过类似的问题。 某些版本的 Visual Studio 存在此问题(请参阅参考资料)。 我正在使用Visual Studio Community 2022 (64-bit) Version 17.2.6
,并切换到不同的版本( Microsoft Visual Studio Community 2019 Version 16.11.18
和Microsoft Visual Studio Community 2022 RC (64-bit) Version 17.0.0 RC2
) ,从而解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.