我正在尝试链接一个项目,该项目具有2个共享功能的库(一个是另一个的分支),并且具有程序必需的独特功能。由于它们共享功能,因此链接程序会抱怨多个定义。 MSVC中是否有一种方法可以强制“使用遇到的第一个”,而不必在体系结构上进行更改?
答案 0 :(得分:1)
简单来说,即使存在多个定义,也需要使用 / FORCE:MULTIPLE 链接器选项来使VC ++生成有效的exe或dll文件。您需要将此添加到:
属性->链接器->命令行->其他选项
您可以查看MSDN文档以了解警告。生成的文件可能无法按预期方式工作,并且文档中没有任何内容表明链接器将采用它看到的第一个定义,尽管可能是这种情况。如果您不使用任何选项而使用 / FORCE ,则就像您同时通过了两个选项 / FORCE:MULTI 和 / FORCE:UNRESOLVED 一样。 / p>
对于更细粒度的解决方案,可以确保链接器采用它看到的第一个定义,请查看以下答案: