私はこれが古いことを知っていますが、ここにもっと良い修正があります:
根本的な原因:
この問題は、GCCによって呼び出されたLDがライブラリの依存関係の解決を開始したときに実際に発生します。GCCとLDはどちらもsysrootを含むライブラリを認識していますが、LDには1つの重要なコンポーネントである/etc/ld.so.confファイルがない可能性があります。RaspberryPIシステムのexampleld.so.confファイルは次のとおりです。
/etc/ld.so.conf.d/*.confを含める
/etc/ld.so.conf.dディレクトリには、次のファイルが含まれています。
00-vmcs.conf:
/ opt / vc / lib
arm-linux-gnueabihf.conf:
/ lib / arm-linux-gnueabihf / usr / lib / arm-linux-gnueabihf
libc.conf:
/ usr / local / lib
ユニバーサルソリューション
この問題は、クロスツールチェーンのLDが見つけることができる場所にLD構成ファイルをコピーすることで簡単に解決できます。ただし、落とし穴が1つあります。クロスツールチェーンがMinGWで構築されている場合(ほとんどが)、おそらくglob()関数にアクセスできなかったため、*。confのようなワイルドカード対応のincludeステートメントを解析できません。 。ここでの回避策は、/ etc / ld.so.conf.dのすべての.confファイルの内容を手動で結合し、それらを/etc/ld.so.confに貼り付けることです。
* / opt / vc / lib
/ lib / arm-linux-gnueabihf
/ usr / lib / arm-linux-gnueabihf
/ usr / local / lib *
正しいフォルダにld.so.confファイルを作成すると、ツールチェーンですべての共有ライブラリ参照を自動的に解決できるようになり、そのエラーメッセージが再度表示されることはありません。