Visual c++ VC6链接冲突 我有一个用VC6. < /P>编译的旧C++项目

Visual c++ VC6链接冲突 我有一个用VC6. < /P>编译的旧C++项目,visual-c++,linker,visual-c++-6,static-libraries,Visual C++,Linker,Visual C++ 6,Static Libraries,我需要静态链接一个新库来实现一个新功能 不幸的是,新库定义了一个符号(即“膨胀”),该符号已在先前链接的静态库中定义 当然,我无法摆脱这两个库,当然我也无法访问库的源代码 有没有办法避免链接器错误(LNK2005)?如果您知道两个版本的_inflate是相同的,或者至少是“兼容的”,那么您可以使用来强制它忽略名称冲突 当然,如果它以任何方式链接到该代码的“不兼容”版本,它可能会导致未定义的行为。好吧,我可以编译……但由于我不确定膨胀实现,我必须找到另一个解决方案(可能会以友好方式链接其中一个)。

我需要静态链接一个新库来实现一个新功能

不幸的是,新库定义了一个符号(即“膨胀”),该符号已在先前链接的静态库中定义

当然,我无法摆脱这两个库,当然我也无法访问库的源代码


有没有办法避免链接器错误(LNK2005)?

如果您知道两个版本的_inflate是相同的,或者至少是“兼容的”,那么您可以使用来强制它忽略名称冲突


当然,如果它以任何方式链接到该代码的“不兼容”版本,它可能会导致未定义的行为。

好吧,我可以编译……但由于我不确定膨胀实现,我必须找到另一个解决方案(可能会以友好方式链接其中一个)。感谢最简单的方法是强制链接,然后测试程序。如果您的程序从未直接或间接导致调用_inflate,那么就不会有问题。如果调用了_inflate,但是实现非常相似(或者不影响其他程序状态),那么它可能不会导致任何不希望的效果(通常您会在不同的libs中找到两个相同的实现otn)。如果它确实被调用并且是“不兼容的”,那么你很可能会得到一个巨大的、非常明显的失败。所以我会尝试一下,如果它在测试中运行良好,您可能有一个可行的解决方案。