我有一個用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 ...
,我得到這個消息:
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
我找不到如何使用LOCAL_STATIC_LIBRARIES
正確的方式,請幫幫我!
我的Android NDK-R9和Android的sdk_r22.2.1在OpenSuSE的x86和使用目標= Android的18
你好你解決你的問題,包括它?因爲我也面臨着同樣的問題。如果你能幫助我 /// –