无法链接英特尔TBB库与libtbb在/ usr / lib [英] unable to link Intel TBB library with libtbb in /usr/lib

查看:213
本文介绍了无法链接英特尔TBB库与libtbb在/ usr / lib的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从英特尔的TBB网站下载了英特尔TBB的预构建头文件和库。我更新了ldconfig以将tbb共享库添加到/ usr / lib。但是在使用-tbb编译时,使用g ++ ld的代码返回-1,因为它找不到libtbb



libtbb.so.2存在于/ usr / lib / / p>

这里是我的完整g ++输出

  g ++ hellotbb.cpp -o htbb -I $ HOME / libs / tbb43 / include -v -ltbb 

使用内置specs。
COLLECT_GCC = g ++
COLLECT_LTO_WRAPPER = / usr / lib / gcc / x86_64-linux-gnu / 4.8 / lto-wrapper
目标:x86_64-linux-gnu
配置为:。 ./src/configure -v --with-pkgversion ='Ubuntu 4.8.2-19ubuntu1'--with-bugurl = file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages = c,c ++,java,go,d,fortran,objc,obj-c ++ --prefix = / usr --program- suffix = -4.8 --enable-shared --enable- linker-build-id --libexecdir = / usr / lib --unhout-included-gettext --enable-threads = posix --with-gxx-include-dir = / usr / include / c ++ / 4.8 --libdir = / usr / lib --enable-nls - -with-sysroot = / --enable-clocale = gnu --enable-libstdcxx-debug --enable-libstdcxx-time = yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin - with-system-zlib --disable-browser-plugin --enable-java-awt = gtk --enable-gtk-cairo --with-java-home = / usr / lib / jvm / java-1.5.0-gcj -4.8-amd64 / jre --enable-java-home --with-jvm-root-dir = / usr / lib / jvm / java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir = / usr / lib / jvm-exports / java-1.5.0-gcj-4.8-amd64 --with-arch-directory = amd64 --with-ecj-jar = / usr / share / java / eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32 = i686 --with-abi = m64 --with-multilib- list = m32,m64,mx32 --with- tune = generic --enable-checking = release --build = x86_64-linux-gnu --host = x86_64-linux-gnu --target = x86_64-linux-gnu
线程模型:posix
gcc版本4.8.2(Ubuntu 4.8.2-19ubuntu1)
COLLECT_GCC_OPTIONS =' - o''htbb''-I''/ home / govind / libs / tbb43 / include''-v''-shared-libgcc ''-mtune = generic''-march = x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.8/cc1plus -quiet -v -I / home / govind / libs / tbb43 /包括-imultiarch x86_64-linux-gnu -D_GNU_SOURCE hellotbb.cpp -quiet -dumpbase hellotbb.cpp -mtune = generic -march = x86-64 -auxbase hellotbb -version -fstack-protector -Wformat -Wformat-security -o / tmp / ccnjmEt3.s
GNU C版本4.8.2,GMP版本5.1.3,MPFR版本3.1编译的GNU C ++(Ubuntu 4.8.2-19ubuntu1)版本4.8.2(x86_64-linux-gnu)
.2-p3,MPC version 1.0.1
GGC启发式:--param ggc-min-expand = 100 --param ggc-min-heapsize = 131072
忽略重复目录/ usr / include / / usr / local / include / x86_64-linux-gnu
忽略不存在的目录/ usr / lib / gcc / x86_64-linux-x86_64-linux-gnu / gnu / 4.8 /../../../../ x86_64-linux-gnu / include
#include...搜索从这里开始:
#include< ... >搜索从这里开始:
/ home / govind / libs / tbb43 / include
/usr/include/c++/4.8
/usr/include/x86_64-linux-gnu/c++/4.8
/usr/include/c++/4.8/backward
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/ usr / local / include
/ usr / lib /gcc/x86_64-linux-gnu/4.8/include-fixed
/ usr / include / x86_64-linux-gnu
/ usr / include
搜索结束列表。
GNU C版本4.8.2,GMP版本5.1.3,MPFR版本3.1.2版本编译的GNU C ++(Ubuntu 4.8.2-19ubuntu1)版本4.8.2(x86_64-linux-gnu)
p3,MPC版本1.0.1
GGC启发式:--param ggc-min-expand = 100 --param ggc-min-heapsize = 131072
编译器可执行校验和:26a7c0bd346d04102f6aea776e0cccc5
COLLECT_GCC_OPTIONS =' -o''htbb''-I''/ home / govind / libs / tbb43 / include''-v''-shared-libgcc''-mtune = generic''-march = x86-64'
as -v -I / home / govind / libs / tbb43 / include --64 -o /tmp/ccC9Xpee.o /tmp/ccnjmEt3.s
使用BFD版本的GNU汇编器版本2.24(x86_64-linux-gnu) (GNU Binutils for Ubuntu)2.24
COMPILER_PATH = / usr / lib / gcc / x86_64-linux-gnu / 4.8 /:/ usr / lib / gcc / x86_64-linux-gnu / 4.8 /:/ usr / lib / gcc / x86_64-linux-gnu /:/ usr / lib / gcc / x86_64-linux-gnu / 4.8 /:/ usr / lib / gcc / x86_64-linux-gnu /
LIBRARY_PATH = / usr / lib / gcc /x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64- linux-gnu / 4.8 /../../../../ lib /:/ lib / x86_64-linux-gnu /:/ lib /../ lib /:/ usr / lib / x86_64-linux-gnu /:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS =' - o''htbb''-I''/ home / govind / libs / tbb43 / include''-v''-shared-libgcc''-mtune = generic''-march = x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot = / --build-id --eh-frame-hdr -m elf_x86_64 --hash-style = gnu --as -needed -ynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o htbb /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../ x86_64-linux-gnu / crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o / usr / lib / gcc / x86_64 -linux-gnu / 4.8 / crtbegin.o -L / usr / lib / gcc / x86_64-linux-gnu / 4.8-L / usr / lib / gcc / x86_64-linux-gnu / 4.8 / ./x86_64-linux-gnu -L / usr / lib / gcc / x86_64-linux-gnu / 4.8 /../../../../ lib -L ​​/ lib / x86_64-linux-gnu -L / lib /../ lib -L ​​/ usr / lib / x86_64-linux-gnu -L / usr / lib /../ lib -L ​​/ usr / lib / gcc / x86_64-linux-gnu / 4.8 /... ./ .. /tmp/ccC9Xpee.o -ltbb -lstdc ++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o / usr / lib / gcc /x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
/ usr / bin / ld:找不到-ltbb
collect2:error: ld返回1退出状态

看起来ld没有检测到/ usr / lib /

解决方案

确保 libtbb.so href =http://packages.ubuntu.com/hu/saucy/amd64/libtbb-dev/filelist =nofollow> libtbb-dev package if need:


apt-get install libtbb-dev


BTW,您的包含文件位于可疑的地方。看起来你混合安装的TBB二进制文件和包括来自不同来源的文件。它可能导致错误的问题,特别是如果头文件比二进制文件更新。


I downloaded the pre built headers and libraries for Intel TBB from Intel's TBB website. I updated ldconfig to add the tbb shared library to /usr/lib. However on compiling with -tbb the code using g++ ld returns -1 as it is unable to find libtbb

libtbb.so.2 is present in /usr/lib/

here is my full g++ output

g++ hellotbb.cpp  -o htbb -I$HOME/libs/tbb43/include  -v  -ltbb 

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 
COLLECT_GCC_OPTIONS='-o' 'htbb' '-I' '/home/govind/libs/tbb43/include' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1plus -quiet -v -I /home/govind/libs/tbb43/include -imultiarch x86_64-linux-gnu -D_GNU_SOURCE hellotbb.cpp -quiet -dumpbase hellotbb.cpp -mtune=generic -march=x86-64 -auxbase hellotbb -version -fstack-protector -Wformat -Wformat-security -o /tmp/ccnjmEt3.s
GNU C++ (Ubuntu 4.8.2-19ubuntu1) version 4.8.2 (x86_64-linux-gnu)
    compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/4.8"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/govind/libs/tbb43/include
 /usr/include/c++/4.8
 /usr/include/x86_64-linux-gnu/c++/4.8
 /usr/include/c++/4.8/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C++ (Ubuntu 4.8.2-19ubuntu1) version 4.8.2 (x86_64-linux-gnu)
    compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 26a7c0bd346d04102f6aea776e0cccc5
COLLECT_GCC_OPTIONS='-o' 'htbb' '-I' '/home/govind/libs/tbb43/include' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 as -v -I /home/govind/libs/tbb43/include --64 -o /tmp/ccC9Xpee.o /tmp/ccnjmEt3.s
GNU assembler version 2.24 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.24
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' 'htbb' '-I' '/home/govind/libs/tbb43/include' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o htbb /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. /tmp/ccC9Xpee.o -ltbb -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
/usr/bin/ld: cannot find -ltbb
collect2: error: ld returned 1 exit status

It seems that ld does not detect my tbb library in /usr/lib/

解决方案

Make sure libtbb.so is also present and install libtbb-dev package if needed:

apt-get install libtbb-dev

BTW, your include files are located in suspicious place. Looks like you mixed installation of TBB binaries and include files from different sources. It can lead to bad problems especially if headers are newer than binaries.

这篇关于无法链接英特尔TBB库与libtbb在/ usr / lib的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆