エラーが発生しました: "usr/bin/ld: -l
プログラムをコンパイルしようとすると、次のエラー メッセージが表示される場合があります:
このエラーは次のことを示していますリンカーが実行可能ファイルのリンク中に指定されたライブラリを見つけることができないことを意味します。この問題を解決するために、ライブラリ パスを指定し、リンカーを正しい場所に誘導する方法を詳しく説明します。
ライブラリ検索パスの追加
考えられる 1 つこのエラーの原因は、Makefile にライブラリ検索パスが欠落していることです。これを解決するには、リンカー コマンドにオプションを追加して、ライブラリを探す場所を指定します。
たとえば、ライブラリが「/myLib」というディレクトリにある場合、次の行を追加できます。 Makefile に次のように追加します:
これにより、リンカーの検索パスに「/myLib」が追加され、リンカーがlibrary.
ライブラリのシンボリックリンク
もう 1 つの考えられる問題は、ライブラリが別のライブラリへのシンボリック リンクであることです。このような場合、リンカーはシンボリック リンクを解決できない可能性があります。これに対処するには、代わりにバージョン管理されたライブラリ ファイルへのシンボリックリンクを作成します。たとえば、ライブラリの名前が「myLib.so」で、そのバージョン管理されたファイルが「myLib.so.1」の場合、次のようにシンボリックリンクを作成します。
冗長モードでのリンカーの実行
さらに診断するには、リンカーを冗長モードで実行することを検討してください。これにより、リンク プロセスに関する詳細な出力が提供され、追加の問題を特定するのに役立ちます。
出力を調べることで、リンカーが検索しているものを特定し、エラーや不足している依存関係のトラブルシューティングを行うことができます。
以上がコンパイラに「usr/bin/ld:Cannot find -l」と表示されるのはなぜですか?その修正方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。