在Visual Studio 2010中,清理/构建成功的地方重建失败

时间:2013-05-10 15:21:37

标签: visual-studio-2010 visual-studio visual-c++ dependencies project-management

我在一个解决方案中创建了两个项目,一个名为vm的静态库和一个名为vmx的控制台应用程序。我使用框架和引用的新方法来创建vm对vmx的依赖性。我还为这两个项目添加了x64平台。

现在,当我选择Rebuild Solution时,我得到了这个输出:

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 ==========

就好像在编译vmx之前构建vm.lib一样。

如果我选择Clean Solution,然后选择Build Solution,我会得到这个输出:

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 ==========

一切都好。

有人可以向我解释这里发生了什么吗?

由于

4 个答案:

答案 0 :(得分:4)

我最近也遇到了这个问题,经过多次敲击后,我意识到输出目录在几个项目中是相同的。所以项目A可以很好地重建,但是当项目B“重建”时,它会清除输出目录,包括projectA的.lib和.dll文件,后续项目重建将失败。

我们对自动构建的修复是为了清理,然后构建解决方案,而不是进行重建或清理/重建。显然,替代方案是将项目更改为每个都有自己的输出目录。

希望能帮助别人!

答案 1 :(得分:2)

我找到了解决问题的方法。解决方案是不在项目设置中使用框架和引用功能,并且只使用旧的Project Dependencies系统。我删除了我的引用并单击了Project Dependencies对话框中的复选框,现在一切正常。怪异!

我认为框架和参考仅适用于C#项目,对于C ++项目应该避免使用。

答案 2 :(得分:0)

1)可能是依赖问题

OR

  

2)在重建期间可能会保留一些旧的中间文件   在清洁期间被删除在新建期间被新的,正确的替换。

答案 3 :(得分:0)

对我来说,这是在下一个项目构建之前已经清理过的中间目录。这真的很令人困惑,因为我不知道究竟将分离到该目录中的是什么,我的解决方案和项目文件都在目录中

  

如果解决方案文件* .sln和引用的项目文件* .vcxproj都在一个目录中,则将$(TargetName)\添加到ProjectProperties > ConfigurationProperties > General > Intermediate Directory的值。   这对我来说是必需的,因为我也在其他解决方案中使用该项目。

相关问题