【发布时间】:2023-03-28 13:00:01
【问题描述】:
我创建了支持 c++ 的 android studio 项目,并安装了本机开发工具包和其他所需工具。如何导入另一个预构建的本机库以包含在 c++ 代码中。我想做这样的事情
我已编辑 cmakelist.txt,如下所示,现在它在 cpp 文件夹下显示共享库。
cmake_minimum_required(VERSION 3.4.1)
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../distribution)
add_library(lib_gmath STATIC IMPORTED)
set_target_properties(lib_gmath PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/gmath/lib/${ANDROID_ABI}/libgmath.a)
add_library(lib_gperf SHARED IMPORTED)
set_target_properties(lib_gperf PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/gperf/lib/${ANDROID_ABI}/libgperf.so)
add_library(lib_ocr SHARED IMPORTED)
set_target_properties(lib_ocr PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/ocr/lib/${ANDROID_ABI}/libLPROCR.so)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
add_library(hello-libs SHARED
hello-libs.cpp)
target_include_directories(hello-libs PRIVATE
${distribution_DIR}/gmath/include
${distribution_DIR}/gperf/include)
target_link_libraries(hello-libs
android
lib_gmath
lib_gperf
lib_ocr
log)
但我无法在我的 c++ 代码中包含来自该预建库的类。
【问题讨论】:
-
@RichardCritten 我已经读过很多遍了,但我没有明白。它说给模块一个名称,然后编辑模块 android.mk 但我在项目结构中没有看到任何这样的东西。
-
您在寻找 libLPROCR.so 的暴露 API 吗?
-
@AlexCohn 是的,可能是源代码。
-
为什么你认为这个库可能对你有用?
标签: android c++ android-ndk ndk-build