【问题标题】:Compiling with debug symbols requires additional libraries?使用调试符号编译需要额外的库?
【发布时间】:2012-11-08 07:07:13
【问题描述】:

我有一个奇怪的问题:当使用-g 构建目标文件时,链接器突然抱怨缺少来自libbar 的符号,而我的工具通过libfoo 间接依赖。没有-g,这不会发生。

这些符号似乎来自libfoo 中的函数的默认参数,它们是来自libbar 的对象。但是,我的工具并未使用这些功能。

我想知道调试版本如何导致这种额外的依赖关系 - 是否有可能为所有符号生成这些调试符号,不仅是我使用的符号,而且对于这些调试符号,还需要默认参数?

这适用于 Solaris 上的 Sun Studio 5.10。

【问题讨论】:

  • 你在 C 中使用内联函数吗?

标签: c++ solaris debug-symbols sunstudio


【解决方案1】:

也许您还添加了一些定义,例如 DEBUG 或类似的东西。这些定义可能会使用来自其他库的一些额外符号(例如,不同的日志库)。如果你举个简短的例子,它也可能会有所帮助

【讨论】:

  • 不,代码不使用 DEBUG 或其他预处理器魔法。事实上,我们的构建系统甚至没有为非调试构建设置 NDEBUG。
猜你喜欢
  • 1970-01-01
  • 2019-05-13
  • 2012-11-04
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
相关资源
最近更新 更多