代码之家  ›  专栏  ›  技术社区  ›  user8219368

对符号“\u zn3tb8internal12nfs\u AllocateEmmPv”的未定义引用

  •  0
  • user8219368  · 技术社区  · 7 年前

    我正在尝试运行multistreaming 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
    

    我在上面搜索了这个 所以

    我错过什么了吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mike Kinghan Luchian Grigore    7 年前
    $ 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 链接选项。