0

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

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

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

4

1 回答 1

1

如果该库确实是共享的并且独立于两个解决方案,我建议将其移至单独的解决方案...我知道这并不是您真正想要的,但从依赖关系本身的性质来看,这似乎是合乎逻辑的。

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

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

于 2013-08-07T15:15:45.230 回答