对符号“_ZN3tbb8internal12NFS_AllocateEmmPv”的未定义引用
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
我在询问之前在 SO 上搜索了这个,大多数答案只是指向在项目设置中正确链接库,我已经做到了,正如上面的代码所示但错误仍然存在。
我是不是漏掉了什么?
$ 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
但你没有link那个图书馆。
您发布的 linker 诊断指出了您使用的共享库
已省略 link:
//usr/lib/x86_64-linux-gnu/libtbb.so.2: error adding symbols: DSO missing from command line
DSO
= 动态共享对象。 Link 通过将 -ltbb
添加到您的 link 年龄选项。
我正在尝试使用 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
我在询问之前在 SO 上搜索了这个,大多数答案只是指向在项目设置中正确链接库,我已经做到了,正如上面的代码所示但错误仍然存在。
我是不是漏掉了什么?
$ 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
但你没有link那个图书馆。
您发布的 linker 诊断指出了您使用的共享库 已省略 link:
//usr/lib/x86_64-linux-gnu/libtbb.so.2: error adding symbols: DSO missing from command line
DSO
= 动态共享对象。 Link 通过将 -ltbb
添加到您的 link 年龄选项。