【问题标题】:boost thread link fails in Netbeans 7.1 debugging/testing session在 Netbeans 7.1 调试/测试会话中提升线程链接失败
【发布时间】:2012-06-21 16:30:36
【问题描述】:

我正在 Netbeans 上开发一个应用程序,但我可以运行它。我无法调试或重新运行测试文件。当我尝试这样做时,我得到:

./build/Debug/GNU-Linux-x86/tests/TestFiles/f1: error while loading shared libraries: libboost_thread.so.1.49.0: cannot open shared object file: No such file or directory

它尝试在调试或测试会话中包含库或特定文件,但我继续得到它。会不会和 Netbeans 不一致?

任何想法将不胜感激!

【问题讨论】:

  • 您尝试运行的应用程序动态链接 Boost.Thread,但在运行时找不到此库。确保该库存在于相关的搜索路径中。

标签: c++ linux boost netbeans boost-thread


【解决方案1】:

我假设您的操作系统是 Linux。从您的电子邮件中可以看出,您可以访问 libboost_thread.so.1.49.0 文件的副本。令 DIR 为该库所在的目录。

如果您在这台计算机上没有超级用户,请使用方法 A。如果您有超级用户,请使用方法 A 或方法 B。

方法 A。适用于非超级用户或超级用户。

令 DIR 为库 libboost_thread.so.1.49.0 所在的目录。

我假设您可以从 shell 命令行启动 NetBeans,而不是从 GUI 图标。

  • 退出 NetBeans。在 bash 中执行以下命令:

    export LD_LIBRARY_PATH=DIR:$LD_LIBRARY_PATH
    
  • 从命令行启动 netbeans

最终,您需要将导出命令放入您的 ~/.bashrc 文件中。

方法 B。仅适用于超级用户。

如果您有超级用户,请使用以下方法之一将缺少的库放入 /usr/lib 或 /lib:

(1) 从 rpm 或 apt 或您的 linux 系统具有的任何软件包安装 boost,或

(2) 使用 --prefix=/usr 从源安装 boost,或者

(3) 将提到的库复制到 /usr/lib。如果您必须使用 #3,请注意符号链接。使用 "cp -a" 复制并复制所有以 libboost_thread.so* 开头的文件,如

    cp -a DIR/libboost_thread.so* /usr/lib

【讨论】:

  • 我遵循了(3)。我不知道应该指向哪里。所以 /usr/lib 是 netbeans 为了检查 c++ .so 文件而经历的。一般而言,C++ libs(?) 很好且非常具有描述性的答案。
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-25
  • 1970-01-01
  • 2016-09-27
相关资源
最近更新 更多