gpt4 book ai didi

android - 错误 : undefined reference in JNI function After upgrading NDK and Cmake for Android Studio

转载 作者:行者123 更新时间:2023-11-29 23:09:09 29 4
gpt4 key购买 nike

我重新安装了 Android Studio,并将 NDK 和 CMake 升级到最新版本。之后我得到了这个错误:

Error while executing process /home/wxh/Android/Sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /home/wxh/AndroidStudioProjects/Measure_It/app/.externalNativeBuild/cmake/debug/armeabi-v7a --target removebackground}
[1/2] Building CXX object CMakeFiles/removebackground.dir/src/main/cpp/removebackground.cpp.o
[2/2] Linking CXX shared library

error: undefined reference to 'cv::imwrite(cv::String const&, cv::_InputArray const&, std::__ndk1::vector<int, std::__ndk1::allocator<int> > const&)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

代码之前编译得很好,所以没有拼写错误。仔细检查:

  1. imgproc.hpp 包含在内。
  2. CMakeList.txt 包含路径和库路径:

    include_directories(/home/wxh/Android/opencv_sdk/native/jni/include)
    add_library( lib_opencv SHARED IMPORTED )
    set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION /home/wxh/Android/opencv_sdk/native/libs/${ANDROID_ABI}/libopencv_java3.so)
  3. app build.gradle

        DefaultConfig{externalNativeBuild {
    cmake { cppFlags "-frtti -fexceptions -std=c++11 "
    arguments '-DANDROID_STL=c++_shared'
    abiFilters 'armeabi-v7a'}}}
    externalNativeBuild { cmake { path "CMakeLists.txt"} }
  4. 它与 opencv 无关,因为它没有被更改。

还有什么问题???

最佳答案

OpenCV 3 正在使用 NDK 不再支持的 gunSTL。新版本的 NDK 只有 c++_staticc++_shared STL。您可以使用新版本的 NDK 从源代码重建 OpenCV 3.x 并选择受支持的 STL 选项之一,或者您可以使用预构建有 c++_static 的 OpenCV 4.x。

修复代码以涵盖 3.x 和 4.x 之间的 API 差异可能比从源代码重建 OpenCV 更容易。

关于android - 错误 : undefined reference in JNI function After upgrading NDK and Cmake for Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56194237/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com