我安装了包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)
如果文件-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