问题描述
我已经用以下命令安装了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'
我如何进行这项工作?
解决方法
出现此错误是因为链接器在您的 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} }).