GNU/Linux >> Linux の 問題 >  >> Linux

ld が既存のライブラリを見つけることができません

Ubuntu では、libtool をインストールできます。 ライブラリを自動的に解決します。

$ sudo apt-get install libtool

これにより、ltdl の問題が解決されました libltdl.so.7 としてインストールされていた私の場合 単純に -lltdl として見つかりませんでした


問題は、リンカが libmagic.so を探していることです libmagic.so.1しかありません

簡単なハックは libmagic.so.1 をシンボリックリンクすることです libmagic.so まで


共有ライブラリをランタイム コンポーネントに分割するのが Debian の慣習です (libmagic1: /usr/lib/libmagic.so.1 → libmagic.so.1.0.0 ) とその開発コンポーネント (libmagic-dev: /usr/lib/libmagic.so → … ).

ライブラリの soname は libmagic.so.1 なので 、これは実行可能ファイルに埋め込まれた文字列であるため、実行可能ファイルの実行時にロードされるファイルです。

ただし、ライブラリは -lmagic と指定されているため、 リンカに対して、libmagic.so を探します 、これが開発に必要な理由です。

これが Linux でどのように機能するかについての詳細は、Diego E. Pettenò:リンカーと名前を参照してください。

つまり、apt-get install libmagic-dev する必要があります。 .これは libmagic.so を与えるだけではありません /usr/include/magic.h のようなコンパイルに必要な他のファイル .


grepsedawk によって定式化されたように、答えは -l にあります。 g++ のオプション 、ld を呼び出しています .このコマンドの man ページを見ると、次のいずれかを行うことができます:

  • g++ -l:libmagic.so.1 [...]
  • または:g++ -lmagic [...] 、libs パスに libmagic.so という名前のシンボリック リンクがある場合

Linux
  1. 設定エラーの修正方法:マクロディレクトリ「m4」が見つかりません[解決済み]

  2. 有効なbaseurlが見つかりません:YumRepoエラー[解決済み]

  3. phpize設定エラー:ソースが見つかりません(config.m4)

  1. エラーOpenSSLの[PHPExtensionmysqlnd]が見つかりません

  2. pspellが見つかりません–PHP構成エラーを修正します

  3. -lmが見つかりませんか?

  1. Ubuntu でパッケージが見つからない問題を修正する方法

  2. /usr/bin/ld:-lpython2.7 が見つかりません

  3. libcrypto ライブラリ エラーが見つかりません