2012-10-30 32 views
6

我有一个链接到OpenCV和cvBlob的项目,但cvBlob也链接到OpenCV。 OpenCV和cvBlob都构建为静态库。连接两个静态库会导致重复吗?

我的可执行文件是否有我的代码和cvBlob使用的所有OpenCV函数的2个副本,或者链接器是否检测到这个并删除冗余?

cvBlob和我的代码链接到相同的OpenCV lib文件。

+1

这实际上是一种非常常见的情况 - 例如,*每个人都链接到CRT。链接器处理它没有汗水。 –

+0

虽然在同一个库有两个不同版本的情况下会发生什么?它确实会被实际使用吗? –

+2

如果你有*不同的* .lib文件实现相同的功能,你会在链接时收到“重复符号”的错误/警告。 – cbranch

回答

4

如果它们都链接到相同的.lib文件,那么在最终的可执行文件中只有一个副本。