无法链接共享库并在mac上运行可执行文件(英特尔tbb)

时间:2017-03-07 05:42:18

标签: c++ macos dll dynamic-linking tbb

我正在尝试编译并将英特尔的tbb链接到我的mac上的一个简单程序中,但我一直收到一个错误,说该库已正确链接。

dyld: Library not loaded: @rpath/libtbb.dylib
  Referenced from:<path>/./a.out
  Reason: image not found
Trace/BPT trap: 5

我使用的测试程序有以下代码

#include <iostream>
#include <cassert>

#include <tbb/concurrent_queue.h>

int main() {
    auto q = tbb::concurrent_queue<int>{};
    q.push(1);
    auto top_value = int{};
    assert(q.try_pop(top_value));
    assert(top_value == 1);
    assert(q.empty());

    return 0;
}

这就是我构建库的方式(为方便起见,下载了库)

curl -OL https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb2017_20170118oss_src.tgz
tar -xzvf tbb2017_20170118oss_src.tgz
mv tbb2017_20170118oss tbb
rm tbb2017_20170118oss_src.tgz
cd tbb
make tbb
mv build/*_release build/tbb_release

我试图用这个命令编译程序

g+++ another.cpp -I tbb/include -L tbb/build/tbb_release -ltbb -ldl

然后在运行程序时我得到上面的错误。关于如何解决这个问题的任何想法?

我的编译器版本是clang-800.0.42.1,我运行的操作系统是10.11.5

谢谢!

0 个答案:

没有答案