首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ld:重复的symbol _dbg_char

ld:重复的symbol _dbg_char
EN

Stack Overflow用户
提问于 2009-07-13 07:47:44
回答 2查看 2.9K关注 0票数 0

在osx上遇到链接器错误(在linux或fbsd上相同的代码没有错误):

代码语言:javascript
复制
ld: duplicate symbol _dbg_char in .libs/liboekernel_la-OEK_get.o and .libs/liboekernel_la-OEK.o

错误中列出的两个库是我的,但符号不是。c++flint确认'_dbg_char‘在这两个库中,但我不确定如何找到它的来源。

关于如何标识_dbg_char的技巧、策略和直截了当的答案将不胜感激。

项目使用的是libtool/autotools和gcc 4.01

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-02 01:31:07

找到由“”dbg_ ## t“”定义dbg_char的日志记录/调试宏。“”修复方法是将其设置为静态的。吸取的经验教训:

  1. osx为符号名称添加了一个前导_。直到我在linux上运行nm并看到没有前导的相同符号,我才认为在代码库中搜索"dbg_“而不是"_dbg_"
  2. osx是正确的抱怨
  3. 丰富的讽刺,剪切并粘贴我不完全理解的调试宏给我带来了这么多麻烦
票数 1
EN

Stack Overflow用户

发布于 2009-07-13 08:30:16

您可能希望检查两个库是否都#include了一个声明了_dbg_char但缺少extern关键字的头文件。也许这是针对其他平台的#ifdef,所以你只会在OS上遇到这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1118155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档