参考项目:ncnn人脸识别Demo
CMakeLists中
add-library
是加载本地库,find_library
是加载NDK库,target_link_libraries
是关联库
下面分别举一些上面三个例子也就是github项目中的CMakeList.txt文件中的三种命令
-
add-library
加载本地库:
# 添加一个.a静态链接库-libncnn.a
add_library(libncnn STATIC IMPORTED)
# 设置库的一些参数: 库名称:libncnn; 被导入库的路径: ${lib_DIR}/${ANDROID_ABI}/libncnn.a
set_target_properties(libncnn PROPERTIES IMPORTED_LOCATION ${lib_DIR}/${ANDROID_ABI}/libncnn.a)
# 添加一个.so动态链接库- libopencv_java
add_library(libopencv_java SHARED IMPORTED)
# 添加预编译库 libopencv_java4.so 被导入库的路径为: ${lib_DIR}/${ANDROID_ABI}/libopencv_java4.so
set_target_properties(libopencv_java PROPERTIES IMPORTED_LOCATION ${lib_DIR}/${ANDROID_ABI}/libopencv_java4.so)
# 生成一个list类型的变量存储下面的文件路径,并将该list赋值给CPP_SRCS
file(GLOB_RECURSE CPP_SRCS
src/main/cpp/ultra_face.h
src/main/cpp/ultra_face.cpp
src/main/cpp/mobile_facenet.h
src/main/cpp/mobile_facenet.cpp
src/main/cpp/base_util.h
src/main/cpp/base_util.cpp
src/main/cpp/face_jni.cpp)
# 添加一个.so动态链接库 -faceLibrary
add_library(faceLibrary SHARED ${CPP_SRCS})
-
find_library
加载NDK库
# 在指定目录下搜索一个库 并保存在该变量中[第一个参数]
find_library(log-lib log android)
find_library(jnigraphics-lib jnigraphics)
find_library(vulkan-lib vulkan)
-
target_link_libraries
关联库
# 将当前的库和后边的库合并
target_link_libraries(faceLibrary libncnn libopencv_java z android ${log-lib} ${jnigraphics-lib} ${vulkan-lib})
网友评论