当前位置: 首页 > 知识库问答 >
问题:

OpenCv与Android studio 2.2+一起使用带有cmake的新gradle-未定义引用

陶弘业
2023-03-14
 cmake_minimum_required(VERSION 3.4.1)
 add_library( native-lib
         SHARED
         src/main/cpp/native-lib.cpp )
include_directories(E\:\\OpenCVSdk\\sdk\\native\\jni\\include )
find_library( log-lib log )
target_link_libraries(native-lib ${log-lib} )

和我的Gradle构建文件

 {    apply plugin: 'com.android.application'

 android {

compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
    applicationId "viki.opecvtry2csupport"
    minSdkVersion 16
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"



    externalNativeBuild {
        cmake {
            cppFlags ""

        }
    }
}

共有1个答案

充煌
2023-03-14

我通过将“lib_opencv”lib添加到target_link_libraries来解决我的问题

target_link_libraries(
                   native-lib lib_opencv #Just add the lib_opencv
                   ${log-lib} )

别忘了把Gradle链接到本地图书馆

我的完整cmakelist.txt

cmake_minimum_required(VERSION 3.4.1)

add_library( native-lib
             SHARED
             src/main/cpp/native-lib.cpp )

find_library( log-lib
              log )

target_link_libraries(native-lib lib_opencv
                       ${log-lib} )

set(CMAKE_VERBOSE_MAKEFILE on)
add_library(lib_opencv SHARED IMPORTED)
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION /PROJECT_PATH/openCVLibrary320/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)

include_directories(/OpenCV-android-sdk/sdk/native/jni/include)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
 类似资料:
  • 我正试图在Ubuntu 20.04上集成librealsense C CLion项目。< br >在终端中单独编译Librealsense可以正常工作。 项目如下所示: 克马尔主义者。基本文件夹中的txt看起来相当简单: 当我试图将子模块包含到我的CLion项目中时,我得到了大量的:< code>main.cpp:(。text 0x23c):对glViewport错误消息的未定义引用,在基目录中构

  • 我是Gradle/Groovy的新手,所以我可能遗漏了一些显而易见的东西。你能帮忙吗? 我们使用Ivy进行依赖管理。我正在试用Gradle,希望与我们现有的常春藤基础设施集成。通常情况下,这应该是可能的,但我们的常春藤的布局有点特别,而且...我不能让它工作。 这是因为我们的常春藤在布局时考虑了组织的url,例如: 我现在试着把这句话翻译成Gradle: 这当然是失败的,因为“[organizat

  • 我的Ubuntu电脑同时安装了qt4和qt5,因为它与一些lib兼容。目前,我想用qt4重建opencv(用于highgui)。但cmake始终使用qt5(默认版本)。我编辑了CMakeLists。txt文件 重建opencv后,我使用ldd libopencv_highgui检查依赖项。所以 libqt5核心。所以5 = Highgui仍然链接到Qt5。有人能帮我吗?谢谢

  • 我正在尝试使用静态编程语言DSL,但我无法让它识别我在BuildSrc中定义的对象。它们由IDE解析,但当我编译代码时,它不起作用。 这是我的项目结构: 依赖关系的内容: 项目build.gradle.kts(第一个失败的): 我还想指出,android{…}块在模块gradle文件中无法识别,但我认为这可能是因为编译失败。

  • 问题内容: 我试图在我的react / redux功能组件中显示我的状态(用户): 哑巴用于容器组件中。users.map语句有问题,但是我认为数据是通过connect语句注入的?减速器的初始状态为1个名称: CodeSandbox 问题答案: 渲染时未使用连接的组件,因此道具在组件中不可用 工作演示

  • 问题内容: 我正在尝试在操作系统上设置libusb API。我在libusb.org上下载了libusb api。我遵循了标准的安装过程: 然后,我启动了Eclipse C / C ++,并从Internet上的教程中复制了一些代码。但是当尝试构建它时,我得到以下输出: 我在/ lib中有libusb.so,在/ usr / local / include中也有usb.h,在/ usr / loc