8

我已经安装了软件包libtcmalloc-minimal0

但是当我尝试用标志编译我的程序时

-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
4

2 回答 2

7

-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

于 2011-11-08T09:53:51.673 回答
0

运行dpkg -L libtcmalloc-minimal0将向您显示该库是/usr/lib/libtcmalloc_minimal.so.0正确的选项应该-ltcmalloc_minimal 没有任何数字

于 2011-11-08T09:20:25.563 回答