[안드로이드] undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::__ndk1::vector<int, std::__ndk1::allocator<int> > const&)'


안드로이드에서 CMake를 사용해서 OpenCV를 사용한 JNI 함수를 만들다 보면 imwrite 부분이 컴파일이 안 되는 경우가 있습니다. 이 때에는 gradle 파일에 다음과 같이 arguments '-DANDROID_STL=gnustl_shared' 을 추가해 주면 됩니다.


android {

    // ...

    defaultConfig {

        // ...

        externalNativeBuild {

            cmake {

                arguments '-DANDROID_STL=gnustl_shared' // needed to enable imwrite                

            }

        }

    }

}


  1. 지나가던 개발자 2020.10.27 21:53

    안드로이드에서 더 이상 gnustl_shared를 지원해주지 않아서 사용할 수 없습니다.

    • 크롬망간 2020.10.27 22:04 신고

      안드로이드 새 버전에서 설정이 바뀌었나보네요 ㅠㅠ 새로운 정보 감사드립니다 ^^

+ Recent posts