2

我有一个包含多个项目的解决方案。其中一些项目共享源文件。我已经设置了我的项目树,以便共享源文件的项目在一起。我的问题是,当我清理并构建共享源文件时,会为每个项目重新编译,而不仅仅是第一个使用它们的项目。结果是初始构建花费的时间比它应该的要长,我必须多次构建才能满足所有依赖项(重新链接是必要的。)该项目是 gcc 项目的一个端口,它使用了一系列 make文件来执行构建。make 文件不会重复编译。有没有办法处理上述情况,以便在 Visual Studio 中满足预期的依赖关系?问题是由于源文件与 .idb 和 .pdb 文件之间的依赖关系造成的吗?

更新:我真正需要的是一种方法来告诉 VS 对具有不同 DLL 和 LIB 名称的相同 obj 文件执行重新链接。我可以通过在重新链接项目中包含 .obj 文件来使其工作,但无法弄清楚如何创建调试/发布版本。在项目文件的部分中,$(IntDir) 似乎没有被解析。所以...

在项目1

file1.c file2.c file3.c 链接到 dll1.dll,dll1.lib

然后在项目 2 中,来自 project1 的目标文件再次链接到 dll2.dll,dll2.lib

项目3同样的事情。等等

我也在 MS 论坛上发布了这个,但还没有收到答案。

4

1 回答 1

2

如果您可以重新组织代码来执行此操作,将共享的 .obj 文件构建到库项目中,那么您可以从依赖项目链接到该库。

这是我能想到的解决问题的唯一“干净”方法——我能想到的任何其他事情都可能涉及“战斗”或“欺骗”视觉工作室,这通常是个坏主意。

于 2010-04-08T20:56:31.517 回答