代码之家  ›  专栏  ›  技术社区  ›  341008 Sylvain

这个警告是什么意思?

  •  10
  • 341008 Sylvain  · 技术社区  · 14 年前

    我经常遇到来自gdb的以下警告:

    warning: .dynamic section for XXX is not at the expected address

    其中XXX是某个库的名称。 最近我是为libgobject-2.0.so买的。我的应用程序使用GTK。直到昨天,当我从存储库同步最新的代码并重新构建它时,gdb才毫无问题地启动它。从那以后,它一直在抱怨动态部分。可能的原因是什么?我该怎么解决呢?

    1 回复  |  直到 11 年前
        1
  •  7
  •   thkala jaxb    14 年前

    一些gdb版本实际上对这个警告更有用。它们输出如下:

    警告:“.libhello.so”的动态部分不在预期的地址(错误的库或版本不匹配?)

    确保GDB找到程序实际编译时使用的库,并且应用程序和库的任何调试符号(如果在单独的文件中)都是最新的,并且与正在使用的生成一致。

    升级听起来是一个很好的理由。预链接库也可能导致出现此警告,尽管我认为gdb可以处理这种情况。