私はC++で書かれたAndroidプロジェクトを持っており、リンクフェーズに問題があります。コードは、一緒にリンクされるべきいくつかの静的ライブラリに置かれます。Android:自分の静的ライブラリを正しくリンクするには?
私はこのトピックについて多くの質問と回答をネットで見つけました。そのほとんどは、ライブラリをAndroid.mkファイルのLOCAL_STATIC_LIBRARIES
に入れることを提案しています。しかし、私がこれを行うと、LOCAL_STATIC_LIBRARIES
の内容が単に無視されることがわかりました:私のライブラリはリンクされておらず、ここにダミーのテキストを追加してもエラーや警告メッセージは生成されません。
私はそれをこの方法を試してみました:
LOCAL_STATIC_LIBRARIES := MyLib.a
またはフルパスで:それらの
LOCAL_STATIC_LIBRARIES := $(LOCAL_PATH)/MyLib.a
どれも働きました。
静的ライブラリをLOCAL_LDLIBS
にするとリンクされますが、非システムライブラリに関する警告メッセージが表示され、おそらくビルドが間違っています。
私Android.mkファイルの内容は次のとおりです。
LOCAL_LDLIBS := $(LOCAL_PATH)/MyLib.a ...
と私は、このメッセージを得た:私はLOCAL_STATIC_LIBRARIES
正しい方法を使用する方法を見つけることができませんでした
Android NDK: WARNING:jni/Android.mk:myapp: non-system libraries in linker flags: jni/MyLib.a
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
を、私を助けてください!
私はopenSUSEのx86の上アンドロイド - NDK-R9とAndroid-sdk_r22.2.1を持っているし、ターゲット=アンドロイド-18
ハローを使用して、それを含めることができます?私も同じ向きです。あなたが私を助けることができるなら/// –