如何在同一解决方案中的不同项目中使用相同的obj文件

时间:2010-04-08 20:37:12

标签: visual-studio-2008 projects

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

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

在project1中

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

然后在项目2中,project1中的目标文件仅在此时再次链接 dll2.dll,dll2.lib

project3同样的事情。等

我也在MS论坛上发布了此帖,但尚未收到答案。

1 个答案:

答案 0 :(得分:1)

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

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