ホームページ > バックエンド開発 > C++ > 私のリンカが `-l` を見つけられないのはなぜですか?

私のリンカが `-l` を見つけられないのはなぜですか?

Mary-Kate Olsen
リリース: 2025-01-03 07:11:39
オリジナル
720 人が閲覧しました

Why Can't My Linker Find `-l`?

「usr/bin/ld: -l が見つかりません」トラブルシューティング ガイド

プログラムをコンパイルすると、「usr/bin/ld: -l が見つかりません」というエラーが発生するリンカーが指定されたライブラリを見つけることができないことを示します。この問題を解決するには、次のトラブルシューティング手順を実行します。

1.ライブラリの存在を確認します:

参照しているライブラリが指定された場所に存在することを確認します。次のコマンドを実行して、利用可能なライブラリをすべてリストします:

ldconfig -p | grep <nameOfTheLibrary>
ログイン後にコピー

2.シンボリック リンクの検証:

ライブラリへのシンボリック リンクを作成した場合は、それが正しく、実際のライブラリ ファイルを指していることを確認します。 「ls -l」コマンドを使用してリンクを表示します:

ls -l <symbolicLink>
ログイン後にコピー

3.詳細リンカー出力:

リンカーが検索している特定のファイルを特定するには、リンカーを詳細モードで実行します。リンク コマンドに「--verbose」フラグを追加します。

ld -l<nameOfTheLibrary> --verbose
ログイン後にコピー

出力には、リンカーが検討しているすべての潜在的なディレクトリとファイルが表示されます。

4.不足しているライブラリをインストールします:

ライブラリが存在しないか見つからない場合は、パッケージ マネージャーを使用してインストールします。たとえば、Debian ベースのシステムの場合:

sudo apt-get install <nameOfTheLibrary>-dev
ログイン後にコピー

5.コマンドにライブラリ パスを追加:

場合によっては、リンカーがライブラリを自動的に見つけられないことがあります。 「-L」フラグを使用してライブラリ パスを手動で指定できます。

g++ -o myprogram myprogram.cpp -l<nameOfTheLibrary> -L/path/to/library
ログイン後にコピー

例:

参照されている問題で説明されている問題を解決するには、リンカーは ZLIB ライブラリを見つけられませんでした:

  1. 指定されたディレクトリに zlib.so ファイルが存在することを確認するか、バージョン管理されたファイル (zlib.so.N) へのシンボリックリンクを作成します。
  2. ld -lzlib --verbose を実行して、検索されているファイルを確認します。
  3. zlib.so がない場合は、作成します。既存のバージョン管理されたファイルへのシンボリックリンク:
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
ログイン後にコピー

以上が私のリンカが `-l` を見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート