1

我有两个 linux 静态库。

它们完全分开编译并且具有不同的名称,并且它们发布的 API 也不同,但是它们构建的 C 文件使用相同的名称 - 因此组成库的目标文件具有相同的名称。

当我来链接这些库时,我是否会因为对象名称相同而出现链接问题,即使函数名称是唯一的?

4

2 回答 2

0

.o(对象)文件的名称无关紧要。只要它们不定义具有重复名称的外部函数/对象(在 C 意义上的对象,而不是“对象文件”意义上),就可以了。

于 2012-06-16T11:46:12.850 回答
0

具有相同文件名的静态库没有问题 - 您可以使用绝对文件路径链接它们以避免歧义。只要它们没有任何共同的符号名称(即任何导出的函数或具有相同名称的变量),您应该没问题。

也就是说,拥有两个同名的库会导致混乱和未来的灾难,更不用说如果您决定动态链接这些库会使事情变得复杂。

如果我是你,我会调查在项目管理级别解决此命名冲突的可能解决方案。也许这两者中的一个可以轻松地重命名?

于 2012-06-16T11:54:26.117 回答