LD:重复的符号_dbg_char

问题描述:

获取有关OSX链接错误(同一代码在Linux或FBSD没有错误):LD:重复的符号_dbg_char

ld: duplicate symbol _dbg_char in .libs/liboekernel_la-OEK_get.o and .libs/liboekernel_la-OEK.o 

错误中列出的2个库是我的,但符号不是。 C++ flint确认'_dbg_char'在两个库中,但我不知道如何找到它的来源。

技巧,策略,对于如何ID _dbg_char将不胜感激直接的答案。

项目使用的libtool /自动工具和GCC 4.01

找到一个记录/调试宏,'dbg_ ## t'定义了dbg_char。修复是让它变成静态的。经验教训:

  1. osx增加了一个前导_符号名称。但直到我跑在Linux纳米,看到了同样的符号,而领先_我想搜索的代码库“dbg_”,而不是“_dbg_
  2. OSX是正确的抱怨
  3. 富有讽刺意味的是切 - 和 - 粘贴调试宏我没有完全理解我造成这么大的麻烦

你可能要检查如果申报_dbg_char但错过extern关键字都库#include的头文件。也许这是#ifdef'为其他平台编辑,所以你只能在OS X上遇到这个问题。

+0

感谢。我已经用grep对整个fs运行find,并且在我的和apples * .h文件中没有找到任何_dbg_char。仍在挖掘... – navicore 2009-07-13 15:31:03