14

共有ライブラリとgccに問題があります。次のエラーが発生したため、最初はコンパイル済みプログラムを実行できませんでした:共有ライブラリのロード中にgccエラーが発生しました。

検索を行ったところ、共有ライブラリが見つからないことが原因であることがわかりました。ただし、共有ライブラリが/ usr / local / libにあることはすでに確認しました。これは、AFAICTが共有ライブラリで一般的に使用されるディレクトリであり、最初から機能するはずです。

私はあなたがLD_LIBRARY_PATHを設定できることを読みました、それは私のために働きました。ただし、プログラムを実行するたびにこれを設定したくありません。

さらに検索すると、ld.so.confの編集が提案されました。私がこれを調べたとき、それは以下を持っていました:

include /etc/ld.so.conf.d/*.conf

ld.so.conf.dディレクトリを見ると、libc.confを含むさまざまなファイルが表示されます。このファイルの中には次のものがあります。

/usr/local/lib

だから私の質問は、ld.so.confが/ usr / local / libを含むlibc.confを使用しているように見えるのに、なぜ手動でLD_LIBRARY_PATHを設定する必要があるのですか?

ここで欠けているもので、最初に構成する必要があるものはありますか?コンパイル時に欠落しているオプションはありますか?

コンパイルするには、ライブラリへのパスを指定する必要がありました。これが私の問題の症状なのか、通常の動作なのかわかりません。

また、ソフトウェアを他のシステムに展開する場合、これは私にとって懸念事項であることに注意する必要があります。.soを適切な場所に配置して、ld.so.confをいじることなくプログラムをインストールできるはずだと思っていたでしょう。

これがこの質問の適切なフォーラムであることを願っています。FAQを読んで、大丈夫だと思います。

乾杯。

4

1 に答える 1

18

を介して、またはその下でldconfig構成されたディレクトリを変更するたびに(rootとして)実行する必要があります。特に、内部で更新するたびに(たとえば、共有ライブラリを追加または更新するたびに)実行する必要があります。/etc/ld.so.conf/etc/ld.so.conf.d//usr/local/lib

于 2012-09-02T09:10:32.313 に答える