未定义引用符号'_ZN3tbb8internal12NFS_AllocateEmmPv'

时间:2017-10-30 09:46:14

标签: compiler-errors linker g++ undefined-reference

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

mRecyclerView.addItemDecoration(new DividerItemDecoration(mContext, LinearLayoutManager.VERTICAL) {
        @Override
        public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
            // Do not draw the divider
        }
    });

我收到以下错误:

g++ -std=c++11 MultiCamera.cpp -o MultiCamera `pkg-config opencv --cflags --libs` -lz -lrt -lm -lpthread

我在询问之前在 SO 上进行了搜索,并且大多数答案只是指出在项目设置中正确链接库并且我已经完成了,因为可以在上面的代码中看到但是错误仍然存​​在

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分: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添加到您的关联选项来链接它。