0

我在 Visual Studio 2012(版本 11.0.50727.1)中有两个 C++ 项目。项目 B 依赖于项目 A,通过Project Properties > Common Properties > Framework and References

当我在 B 上进行重建时,项目 A 的库不会在输出目录中生成,因此 B 失败。日志显示 A 正在成功构建,但 lib 根本没有出现。

真正奇怪的是,当我执行“清理然后构建”而不是“重建”时,一切正常。同样,项目 A 可以自行构建并生成一个.lib。不幸的是,我必须使用的构建系统将进行“重建”,如果可能的话,我宁愿不改变它。

我试过的

我删除了框架引用并尝试将 lib 添加为 B 中的链接器依赖项。在这种情况下,A 仍然无法构建,所以我最终得到了一个缺少的引用。

我在 SO 和 google 上搜索了一段时间,但到目前为止还不够。

如果您遇到过类似的事情,请告诉我!

4

1 回答 1

1

看起来问题是 A 和 B 共享一个中间目录。使两者不同似乎已经解决了这个问题。

这是我对正在发生的事情的猜测:

  1. A 得到正确构建。
  2. B 通过“清洁”开始构建
  3. 中间目录的内容是用来判断哪些文件需要从输出目录中清理出来,所以A.lib被错误的删除了
  4. 未找到 A.lib

这在以前版本的 VS 中有效,因为我们之前没有启用并行构建项目,所以我假设所有项目都先清理,然后再构建。

于 2012-12-14T15:02:11.107 回答