g++链接阶段无法识别TBB库的问题求助
解决TBB parallel_for编译链接错误的方案
问题原因
你当前的编译命令把库文件放在了源文件前面,链接器处理时会先读取库文件,但此时还没有遇到需要引用的符号,所以不会保留库中的相关符号,后续处理源文件时找不到这些符号,就会报未定义引用错误。
修正后的编译命令
把库文件路径移到源文件之后,或者更规范地使用-l参数指定库(系统默认库路径已包含/usr/lib/x86_64-linux-gnu/,g++会自动搜索):
方式一:调整库文件位置
g++ -std=c++11 parallel_for.cpp /usr/lib/x86_64-linux-gnu/libtbb.so -v
方式二:使用-ltbb参数(更推荐)
g++ -std=c++11 parallel_for.cpp -ltbb -v
额外检查点
如果仍有错误,可做以下验证:
- 确保测试代码开头包含头文件:
#include <tbb/parallel_for.h> - 确认系统已安装
tbb-dev包,Ubuntu下可通过sudo apt install libtbb-dev安装,头文件默认位于/usr/include/tbb/
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

