强制解析 MSVC 中的多个函数定义

Force resolution of multiple function definitions in MSVC

我正在尝试 link 一个项目,该项目有 2 个共享功能的库(一个是另一个的分支)以及具有程序所需的独特功能。因为它们共享功能,所以 linker 抱怨有多个定义。 MSVC 中是否有一种方法可以强制 "use the first one you come across" 而不是必须在架构上进行更改?

简单来说,你需要使用/FORCE:MULTIPLE链接器选项来使VC++生成一个有效的exe或dll文件,即使有多个定义。您需要将其添加到:

属性->链接器->命令行->附加选项

您可以查看 MSDN 文档以了解注意事项。生成的文件可能无法按预期工作,并且文档中没有任何内容表明链接器将采用它看到的第一个定义,尽管这可能是这种情况。如果您在没有任何选项的情况下使用 /FORCE,它的工作方式就好像您通过了两个选项 /FORCE:MULTIPLE/FORCE :未解决.

要获得更细粒度的解决方案,您可以确保链接器采用它看到的第一个定义,请查看以下答案:

Visual Studio 2010 library linking order