【问题标题】:Eclipse c++ library not found in debug mode but found in release mode在调试模式下找不到但在发布模式下找到的 Eclipse C++ 库
【发布时间】:2011-05-09 12:18:56
【问题描述】:

我正在尝试使用 eclipse 调试我在 c++ 中编写的程序,但在选择调试选项时遇到了问题。

/home/dupinf/workspace/HashTest/Debug/HashTest: 
/sw/st/gnu_compil/gnu/linux-rh-ws-4-x86_64/lib64/libstdc++.so.6: 
version `GLIBCXX_3.4.15' not found

当我刚刚运行版本时,它运行顺利。但是当我尝试进入调试模式时,我得到了错误。我不明白为什么它在一种模式下找不到库,而在另一种模式下却找不到

为了能够调试和使用断点,我应该改变什么?

【问题讨论】:

  • 调试版是否单独安装(开发版)?
  • 调试版本只是我的eclipse中的另一个配置。我想知道的是我应该在调试配置中更改什么以允许它找到 GLIBCXX ?
  • 在 Eclipse 中它只是一个不同的配置。在操作系统中,它可能是一个单独的包来安装,开发版本与仅运行版本。
  • 所以我必须找到 GLIBCXX_3.4.15 作为调试版本的位置?当我找到它时,我在哪里给出 eclipse 的路径?在 Eclipse 首选项或我的完整库路径中?
  • 我的意思是为了让运行正常工作,我在 LD_LIBRARY_PATH 的第一个位置添加了库的位置,但在调试模式下似乎没有考虑到它

标签: c++ eclipse debugging


【解决方案1】:

所以我发现了问题所在:

1) 转到我的调试的启动配置
2) 转到环境选项卡
3) 添加 LD_LIBRARY_PATH 变量和我的库的路径
4) 选中复选框以覆盖现有变量。

然后我就可以顺利调试了。

请注意,即使您在终端中修改了 LD_LIBRARY_PATH,在调试模式下也不会考虑,而只是在运行模式下考虑。

希望它可以帮助某人;)

【讨论】:

  • 您知道问题是否仍然存在吗?我在 OS-X 上与 Eclipse Kepler 有非常相似的问题,并且设置 DYLD_LIBRARY_PATH 没有帮助...... :(
【解决方案2】:

与外部库链接时,请记住这些库是在发布或调试模式下构建的。当库以调试模式构建时,它包含调试器挂钩以监视应用程序状态的所有调试符号/信息。如果您正在尝试构建应用程序的调试版本并链接到发布版本 - 这将导致问题(因为您链接的库在发布或调试版本中的组织方式不同)。解决方案:在调试模式下重建外部库,并链接到那些

【讨论】:

  • 我不太确定。 GLIBCXX 不是标准库吗?我在哪里可以得到在调试模式下构建它的源代码??
猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 2015-08-24
  • 2015-01-13
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多