未定义引用符号'_ZN3tbb8internal12NFS_AllocateEmmPv'

问题描述 投票:0回答:1

我正在尝试使用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

我在询问之前搜索了这个,大多数答案只是指向在项目设置中正确链接库,我已经完成了,正如上面的代码中可以看到但错误仍然存​​在。

我在这里错过了什么吗?

compiler-errors linker g++ undefined-reference
1个回答
2
投票
$ c++filt _ZN3tbb8internal12NFS_AllocateEmmPv
tbb::internal::NFS_Allocate(unsigned long, unsigned long, void*)

你的程序有一个未定义的函数tbb::internal::NFS_Allocate(unsigned long, unsigned long, void*)的引用。此函数在Intel TBB library中定义,但您没有链接该库。

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

//usr/lib/x86_64-linux-gnu/libtbb.so.2: error adding symbols: DSO missing from command line

DSO =动态共享对象。通过将-ltbb添加到您的链接选项来链接它。

© www.soinside.com 2019 - 2024. All rights reserved.