我安装了包 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
答案 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
,不得有任何数字