与libtcmalloc ubuntu链接

时间:2011-11-08 09:17:35

标签: gcc tcmalloc

我安装了包 libtcmalloc-minimal0

但是当我尝试使用flag

编译我的程序时

-ltcmalloc-minimal0

我收到错误

/ usr / bin / ld:找不到-ltcmalloc_minimal0

我已经检查了/ usr / lib并且库在那里

更多信息

dpkg给出以下o / p

dpkg -L libtcmalloc-minimal0
/.
/usr
/usr/lib
/usr/lib/libtcmalloc_minimal.so.0.0.0
/usr/lib/libtcmalloc_minimal_debug.so.0.0.0
/usr/share
/usr/share/doc
/usr/share/doc/libtcmalloc-minimal0
/usr/share/doc/libtcmalloc-minimal0/TODO
/usr/share/doc/libtcmalloc-minimal0/AUTHORS
/usr/share/doc/libtcmalloc-minimal0/copyright
/usr/share/doc/libtcmalloc-minimal0/changelog.gz
/usr/share/doc/libtcmalloc-minimal0/README.gz
/usr/share/doc/libtcmalloc-minimal0/changelog.Debian.gz
/usr/lib/libtcmalloc_minimal.so.0
/usr/lib/libtcmalloc_minimal_debug.so.0

我正在编译64位模式

和库也是64位

file  /usr/lib/libtcmalloc_minimal.so.0.0.0
/usr/lib/libtcmalloc_minimal.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

2 个答案:

答案 0 :(得分:6)

如果文件没有与-l完全结束,则不能简单地链接到.so的文件,因为链接器采用特定的命名约定(lib*.so)。

您有多种选择:

  • 安装libtcmalloc-minimal0-dev(如果存在),应提供.so动态链接。

  • 自己创建符号链接:cd /usr/lib; ln -s libtcmalloc_minimal.so.0.0.0 libtcmalloc_minimal.so; cd -

  • 使用gcc test.c /usr/lib/libtcmalloc_minimal.so.0.0.0

  • 直接链接到没有符号链接的库
  • 使用-l选项使用全名进行链接:-l:libtcmalloc_minimal.so.0.0.0

答案 1 :(得分:0)

正在运行dpkg -L libtcmalloc-minimal0会显示该库为/usr/lib/libtcmalloc_minimal.so.0,因此正确的选项应为-ltcmalloc_minimal ,不得有任何数字