android 關於mk如何引用其它so庫

2021-10-07 03:30:49 字數 2164 閱讀 7424

android.mk

#jni/android.mk

local_path:= $(call my-dir)

include $(clear_vars)

local_module := android-ffmpeg

local_src_files :=c ffmpeg-build/$(target_arch_abi)/libffmpeg.so

local_export_c_includes := ffmpeg-build/$(target_arch_abi)/include

local_arm_neon:=true

include $(prebuilt_shared_library)

include $(clear_vars)

local_module:=ffmpeg-jni

local_src_files:=ffmpeg-jni.cpp player.cpp fast_queue.cpp

local_ldlibs:=-llog -lz -lm -landroid

local_shared_libraries:=android-ffmpeg

local_static_libraries:=androidvideo androidaudio omxdecoder

include $(build_shared_library)

include $(call all-makefiles-under,$(local_path))

執行時,如果報錯找不到so庫,可以執行命令載入so所在路徑:

通常,開發android的軟體,常常需要編譯so庫,然編譯的這個so庫,需要呼叫多個其它的so庫。這裡主要記錄一下,編譯so庫時,呼叫其它so庫的mk,是怎麼寫的。

這裡講的示例:需要編譯出libtest3.so,它需要呼叫libtest1.so,libtest2.so

1. 在android 原始碼下編譯

local_path:= $(call my-dir)

include $(clear_vars)

local_module_tags := eng

local_src_files := \

test3.cpp

local_c_includes += \

$(local_path)/include/ \

external/libpiccreader/

local_module := libtest3

#local_ldlibs += -lpthread -ldl

local_shared_libraries := liblog \

libcutils \

libutils \

libtest1 \

libtest2

include $(build_shared_library)

2. 在ndk的環境下編譯

local_path:= $(call my-dir)

include $(clear_vars)

local_module    := libtest1

local_src_files := libtest1.so

include $(prebuilt_shared_library)

include $(clear_vars)

local_module    := libtest2

local_src_files := libtest2.so

include $(prebuilt_shared_library)

include $(clear_vars)

local_module_tags := eng

local_src_files := \

test3.cpp

local_module := libtest3

local_ldlibs += -l$(sysroot)/usr/lib -llog 

local_shared_libraries := liblog \

libcutils \

libutils \

libtest1 \

libtest2

include $(build_shared_library)

在android.mk中新增

local_ldflags += -l/path/to/lib -llibname

Android 資源引用

命名空間 命名空間即為避免不同開發包變數衝突,如甲公司 乙公司均出了開發包,兩個開發包大量變數名相同,為避免衝突,兩個公司都給開發包規定了命名空間,引用開發包中的變數時必須新增命名空間名 android為例 xml檔案中第乙個元素 設定命名空間xmlns android 則android layou...

android 軟引用使用

首先定義乙個hashmap,儲存軟引用物件。private map imagecache new hashmap 再來定義乙個方法,儲存bitmap的軟引用到hashmap。public void addbitmaptocache string path 獲取的時候,可以通過softreferenc...

關於glew h glut h引用

在opengl程式設計中,使用glmultitexcoord2f gl texture0 i,x,y 你會發現這個函式都沒有定義的,以及gl texture0,這個常量。因為在vc編譯器中,opengl的版本是1.1,版本比較落後,下個 glew庫就可以了。安裝的步驟,與glut一模一樣,將dll動...