我在 Visual Studio 2012(版本 11.0.50727.1)中有两个 C++ 项目。 项目 B 依赖于项目 A,通过 Project Properties > Common Properties > Framework and References。
当我在 B 上进行重建时,项目 A 的库未在输出目录中生成,因此 B 失败。日志显示正在成功构建 A,但根本没有显示库。
真正奇怪的是,当我执行“清理然后构建”而不是“重建”时,一切正常。同样,项目 A 可以自行构建并生成一个 .lib。不幸的是,我必须使用的构建系统将进行“重建”,如果可能,我宁愿不更改它。
我尝试过的
我删除了框架引用并尝试将库添加为 B 中的链接器依赖项。在这种情况下,A 仍然无法构建,因此我最终缺少引用。
我已经在 SO 和谷歌上搜索了一段时间,但到目前为止还没有找到。
如果您遇到过类似的事情,请告诉我!
最佳答案
看起来问题是 A 和 B 共享了一个中间目录。 使两者截然不同似乎解决了这个问题。
这是我对发生的事情的猜测:
- A 得到正确构建。
- B 通过“清理”开始构建
- 中间目录的内容用于确定需要从输出目录中清除哪些文件,因此错误地删除了 A.lib
- 未找到 A.lib
这在以前版本的 VS 中有效,因为我们之前没有启用项目的并行构建,所以我假设所有项目都先清理,然后构建。
关于c++ - VS 2012 不构建依赖项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13879774/