3

我在一个解决方案中创建了两个项目,一个名为 vm 的静态库和一个名为 vmx 的控制台应用程序。我使用Framework和References的新方法来为vmx创建vm的依赖。我还在这两个项目中添加了 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 ==========

好像 vm.lib 在编译 vmx 之前在构建后被删除。

如果我选择 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

4 回答 4

4

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

我们目前对自动构建的修复是先清理,然后在解决方案上构建,而不是重建或清理/重建。显然,另一种选择是将项目更改为每个项目都有自己的输出目录。

希望对某人有所帮助!

于 2013-08-18T21:37:39.890 回答
3

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

我喜欢框架和参考仅适用于 C# 项目,应避免用于 C++ 项目。

于 2013-05-28T20:26:46.910 回答
0

1)可能是一些依赖问题

或者

2)一些旧的中间文件可能会在重建过程中保留,这些文件在清理过程中会被删除,并在新构建过程中被新的、正确的替换。

于 2013-05-15T17:47:28.203 回答
0

对我来说,这是在构建下一个项目之前已清理的中间目录。这真的很令人困惑,因为我不知道该目录中的具体内容是什么,而我的解决方案和项目文件都在该目录中

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

于 2015-10-30T09:59:12.877 回答