2010-10-07 111 views
0

我的平台是Windows/Visual Studio/C++如何修复Visual Studio/C++中静态库之间的符号名称冲突?

我有两个静态的.lib文件。他们来自两个不同的供应商。不幸的是,lib符号在每个文件定义的全局定义的符号上发生碰撞。他们都选择了同一个名字。伊克!

有没有办法让命名空间或“隐藏”来自两个库的符号,使它们不冲突?

我知道你可以设置链接器选项/ FORCE:MULTIPLE,但是不清楚名称冲突时会对库造成的后果。 http://msdn.microsoft.com/en-us/library/70abkas3%28v=VS.71%29.aspx

回答

0

围绕您的目标之一创建一个新的'包装器'静态库,它使用不同名称与非包装库导出所需的所有内容。

+0

好的谢谢。我们正在考虑将它封装在一个dll中。 – meissnersd 2010-10-11 13:43:47

+0

@meissnersd - 要么工作,你只需要消除其中一个封装名称的歧义。 – 2010-10-11 14:54:40