Compiler errors 对符号'的未定义引用_zn3tb8internal12nfs#u AllocateEmmPv';

Compiler errors 对符号'的未定义引用_zn3tb8internal12nfs#u AllocateEmmPv';,compiler-errors,linker,g++,undefined-reference,Compiler Errors,Linker,G++,Undefined Reference,我正在尝试使用OpenCV在ubuntu中运行多流。我试着这样编译: g++ -std=c++11 MultiCamera.cpp -o MultiCamera `pkg-config opencv --cflags --libs` -lz -lrt -lm -lpthread 我得到以下错误: /usr/bin/ld: /tmp/ccylvz8g.o: undefined reference to symbol '_ZN3tbb8internal12NFS_AllocateEmmPv' //

我正在尝试使用OpenCV在ubuntu中运行多流。我试着这样编译:

g++ -std=c++11 MultiCamera.cpp -o MultiCamera `pkg-config opencv --cflags --libs` -lz -lrt -lm -lpthread
我得到以下错误:

/usr/bin/ld: /tmp/ccylvz8g.o: undefined reference to symbol '_ZN3tbb8internal12NFS_AllocateEmmPv'
//usr/lib/x86_64-linux-gnu/libtbb.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
在询问之前,我在上搜索了这个,大多数答案都指向在项目设置中正确链接库,正如上面的代码所示,我已经这样做了,但错误仍然存在

我是不是遗漏了什么

$ c++filt _ZN3tbb8internal12NFS_AllocateEmmPv
tbb::internal::NFS_Allocate(unsigned long, unsigned long, void*)
您的程序对的引用未定义 函数
tbb::internal::NFS\u Allocate(unsigned long、unsigned long、void*)
。 此函数在中定义 但您没有链接该库

您发布的链接器诊断指出了您需要的共享库 省略了链接:

//usr/lib/x86_64-linux-gnu/libtbb.so.2: error adding symbols: DSO missing from command line
DSO
=动态共享对象。通过将
-ltbb
添加到链接选项来链接它。

它起作用了。g++-std=c++11 MultiCamera.cpp-o MultiCamera
pkg config opencv--cflags--libs
-lpthread-ltbb谢谢!