与libtcmalloc ubuntu链接

Viv*_*oel 8 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
Run Code Online (Sandbox Code Playgroud)

我正在编译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
Run Code Online (Sandbox Code Playgroud)

wor*_*rty 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