首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺少.aar中的opencv核心.aar库

缺少.aar中的opencv核心.aar库
EN

Stack Overflow用户
提问于 2022-02-06 18:43:17
回答 1查看 244关注 0票数 0

我目前正在尝试使用Gradle编译OpenCV,并将其集成到我的Android项目中,但我面临一个问题,我不知道如何解决这个问题。

我在我的项目中创建了一个本机库模块,并创建了几个gradle任务,用于下载和解压缩项目中的源代码。然后,使用CMakeLists.txt项目中提供的OpenCV文件,在应用程序CMakeList.txt文件中使用"add_subdirectory“导入它。

这样,.cxx/RELEASE/buildHash/arm64-v8a/opencv/lib/arm64-v8a/文件夹中的OpenCV编译将正确完成,并生成两个必需的库libopencv_core.so和libopencv_imgproc.so。

但是,只有我自己的应用程序.so库和libopencv_imgproc.so包含在最终的.aar文件中。libopencv_core.so失踪了。如果我签入位于build/intermediates/cxx/RELEASE/buildHash/obj/arm64-v8a/,中的Gradle build文件夹,我可以看到与.aar中相同的问题。

有趣的是,如果我只需要使用libopencv_core.so,它将被正确地集成到最终的.aar中,我不明白为什么。

这是我的CMakeList.txt文件:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.18.1)

project("myapp")

add_library(
        myapp
        SHARED
        myapp.cpp )

find_library(
        log-lib
        log )

# OpenCV source code and CMakeList.txt are located in the opencv folder
add_subdirectory(opencv)

# Library opencv_core and opencv_imgproc are generated by the OpenCV CMakeList.txt
target_link_libraries(myapp opencv_core opencv_imgproc ${log-lib} )

target_include_directories(myapp PUBLIC
        opencv/modules/core/include
        opencv/modules/imgproc/include
)

include_directories (${CMAKE_BINARY_DIR})

我的问题是,我错过了什么?我必须指定什么东西来强制包含libopencv_core.so吗?

PS:为什么我不简单地集成二进制文件而不是编译它们呢?因为这个应用程序是针对from的,这需要从源代码编译完整的代码,所以这对我来说不是一个选项。

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 12:45:32

我终于成功地将libopencv_core.so复制到正确的文件夹中,并生成了一个完整的aar。

我只需在我的应用程序CMakeLists.txt中添加以下内容:

set_target_properties( opencv_core PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )

我不太明白为什么我必须加上这一行,但它是有效的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71010461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档