符号碰巧在两个第三方库中定义,即在我的情况下,zlib以某种方式将其版权字符串都包含在其中。
我检查了这个版权字符串,它是一个带有版权声明的无害的全局静态字符串。
但是,由于此原因我无法联系。
有没有一种简单的方法可以在其中一个库中删除它?
这是错误:
zlib_mdd.lib(deflate.obj) : error LNK2005: _deflate_copyright already defined in libboost_zlib-vc110-mt-gd-1_50.lib(deflate.obj)
答案 0 :(得分:1)
一种有点脏但有效的方法是使用binaray编辑器(例如PsPad)手动修改其中一个.lib文件中的符号。
只需将_deflate_copyright
更改为例如_deflate_copyrigXX
。字符不得删除但必须替换。
请勿替换符号名称的 start 处的字符(例如,将_deflate_copyright
替换为_Xeflate_copyright
,因为这会混淆链接器的内部搜索算法。