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終わっていないファイルに単純にリンクすることはできません。.solib*.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 に答える