明確な答えはありませんが、最近同じ問題と戦っていました。これが私の発見です。うまくいけば、誰かが確認します。
LOCAL_LDLIBS と LOCAL_SHARED_LIBRARIES は両方とも、ライブラリをリンクするために使用されます。ただし、LOCAL_SHARED_LIBRARIES は中間オブジェクトを探しており、見つからない場合はライブラリが再構築されています。
LOCAL_LDLIBS は、最終的なライブラリを見つけることを期待しています。
どちらも SDK と NDK で動作します。
Android プラットフォームのビルド中に LOCAL_LDLIBS が機能しないという問題が発生したか、より具体的なコンポーネントの 1 つであるカメラが発生しました。LOCAL_LDLIBS が機能しない理由は、リンク コマンドにまったく表示されないためです。
つまり、コンポーネント フォルダー (私の場合は cameraHAL) mm showcommands (最初にメイン フォルダーで . build/envsetup.sh を実行) 内でビルドすると、リンク コマンドは LOCAL_LDLIBS に指定されたものを何も示しません。
何故ですか?
ロジックは、アンドロイドを構築するときにすべてのソースを持っていることが期待されるため、LOCAL_SHARED_LIBRARIES を使用するのが正しい方法であると考えています。
LOCAL_LDFLAGS と LOCAL_LDLIBS。LOCAL_LDFLAGS は、リンクするライブラリだけでなく、任意のフラグを渡すために使用されるため、リンク コマンドに表示されます。
LOCAL_LDLIBS は、ライブラリのリンク専用であり、NDK/SDK でのみ使用できます。