在多个解决方案之间共享C ++静态库会导致不必要的重建

时间:2013-08-07 15:05:35

标签: c++ visual-studio-2010

我有两个解决方案,包括和引用相同的静态库。我使用“添加引用...”功能包含库,而不是指定其他链接器输入。似乎当我构建其中一个解决方案时,它会导致另一个解决方案认为它需要重建共享库,然后导致它重新链接第二个解决方案。因此,如果我在构建的两个解决方案之间来回切换(不进行任何代码更改),解决方案每次都会执行链接。

看起来共享静态库实际上并没有被重新编译,但VS正在为它执行库管理程序步骤。我猜这个图书管理员的步骤正在发生,因为.lastbuildstate文件(包含上次构建项目的解决方案的路径)被确定为过时。

以前有人遇到过这个问题吗?有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果库真的是共享的,并且独立于两个解决方案,我建议将它移到一个单独的解决方案......我明白这并不是你想要的,但依赖本身的性质似乎是合乎逻辑的。

支持这一点的另一个考虑因素是该库可能稍后用于其他项目。因此,最好将它移动到一个单独的位置(单独的解决方案,VCS中的单独文件夹)并将其视为任何第三方库(即openssl,boost等),将依赖项指定为链接器输入。 / p>

以上所有内容只是我对如何做到这一点的想法,并不代表任何“最佳实践”。