由于'未加载库''未找到图像',eclipse mac安装提升错误

时间:2013-07-07 13:15:20

标签: c++ eclipse macos boost installation

我一直收到此错误消息但不知道原因。

  

dyld:未加载库:libboost_thread.dylib     参考自:/ Users / adhg / Documents / workspace_cpp / Boost_101 / Release / Boost_101     原因:未找到图像

代码:

#include <iostream>
#include <boost/thread.hpp>

void workerFunction() {
 boost::posix_time::seconds workTime(3);
 std::cout << "Worker: running" << std::endl;
 boost::this_thread::sleep(workTime);
 std::cout << "Worker: finished" << std::endl;
}

int main() {
 std::cout << "main: startup" << std::endl;
 boost::thread workerThread(workerFunction);
 std::cout << "main: waiting for thread" << std::endl;
 workerThread.join();
 std::cout << "main: done" << std::endl;
 return 0;
}

我所做的只是按照here和其他许多地方的说明进行操作:

  1. 下载提升
  2. 解压缩到文件夹
  3. ./ bootstrap.sh
  4. ./的bjam
  5. 你会注意到usr / local / boost ...是我实际放置文件夹(它存在)的地方,在usr / local / boost_1_54_0 / stage / lib下我有libboost_thread等等。仍然......不确定为什么我会收到此错误。

    我的设置现在看起来像这样:

    enter image description here

    enter image description here

    任何人都可以指出我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

这看起来是一个动态链接问题,通过一些研究,似乎可以通过将DYLD_LIBRARY_PATH环境变量设置为指向库所在的位置来解决(在您的情况下,{{ 1}})。您可能希望阅读this similar questionthis external page,其中后者表示

  

这种情况发生了,因为我从源代码构建了boost并将其保持在本地。因此,库的路径不是默认路径。要解决这个问题,我们必须编辑环境变量DYLD_LIBRARY_PATH,这类似于linux LD_LIBRARY_PATH

(另外,我只想提一下,如果你只对线程功能感兴趣而不是整个Boost感兴趣,你可以使用C ++ 11的<thread>标题。)