11

我有一个带有库项目的 Visual Studio 解决方案,我们称之为它libFoo,还有一个可执行项目——我们称之为Bar依赖于libFoo.

例如,当我更改libFoo/bar.cpp并尝试构建时libFoo,Visual Studio 会编译我的 bar.cpp 文件,但不会重新生成 library libFoo.lib,说它已经是最新的。

我检查了系统时钟。我还验证了bar.obj文件的修改时间实际上是更新的,并且库比 obj. 但它仍然没有重新创建库。

实际的解决方案实际上由大约 100 个项目组成,其中一些是库,其中一些是可执行文件。问题发生在我的 3 名团队成员的计算机上。其余不受影响。我们不知道它为什么会发生,以及如何解决它......或者天气它可能会发生在其他团队成员身上。

我无法通过使用库和依赖于它的可执行文件创建自己的小型解决方案来重新生成它。所以我相信这是环境问题和我们的解决方案/项目文件问题的某种组合。

谢谢,亚历克斯。

编辑

该解决方案是在 Visual Studio 2010 上创建的,过去几年在 VS2010 上开发,直到我们开始使用 VS2012。安装了 VS2010 和 VS2012 的用户会出现此问题。解决方案现在是VS2012解决方案,项目使用VS2010平台工具包。

当我们开始使用 VS2012 时,我们的团队迁移了解决方案,但我们将所有 C++ 项目的“平台工具包”保留为 VS2010,以便我们的代码与仍在使用 VS2010 的其他团队兼容。

谷歌没有透露任何可行的解决方案。尽管它确实揭示了其他人也遇到过类似问题的事实。

4

2 回答 2

1

It seems that we have encountered the same problem as the person who asked this question. There is also a bug report on Microsoft Connect.

To make things short - our intermediate folder was the same as our %temp% folder on some configurations. We solved the problem by modifying the intermediate folder of all our Visual C++ projects.

于 2013-03-20T09:46:59.243 回答
0

确保“General\Target Name”和“Librarian\Output File”的项目属性匹配,并且它们与所有配置匹配。在“图书馆员\命令行”页面上检查上述内容也是值得的。

于 2013-02-15T13:20:31.180 回答