g ++-10编译器中的ltbb标志

时间:2020-10-01 16:00:13

标签: c++ macos terminal g++ tbb

我已经用以下命令安装了tbb库: brew install tbb。 但是当我尝试使用以下程序编译程序时:

g++-10 hello.cpp -o hello --std=c++2a -Wall -ltbb -lpthread -O3

我遇到了错误:

ld: library not found for -ltbb
collect2: error: ld returned 1 exit status

所有其他标志正常工作。

如果我使用-tbb而不是ltbb,我会得到

g++-10: error: unrecognized command-line option '-tbb'

我如何进行这项工作?

1 个答案:

答案 0 :(得分:0)

出现此错误是因为链接器在您的 Mac 上找不到 libtbb.dylib。它找不到它,因为 Homebrew 将 TBB 库安装在一个非标准文件夹中(默认情况下,该文件夹不在您的 DYLD_LIBRARY_PATH 环境变量中,这是 ld 用于搜索 {{1 }}s).

我遇到了同样的问题,发现 .dylib(以及所有其他使用 libtbb.dylib 安装的库的符号链接)在 brew 中。因此,您可以在运行 /opt/homebrew/lib 命令之前执行类似 export DYLD_LIBRARY_PATH=/opt/homebrew/lib:${DYLD_LIBRARY_PATH} 的操作,或者如果您使用的是 CMake 之类的构建系统,则可以在 {{1} }).

相关问题