Я использую opencv C++-код, чтобы я мог изменить некоторые вещи кода и скомпилировать его и получить результат. Проблема в том, что я могу использовать функции opencv C++ в моей функции интерфейса JNI. Я могу использовать эти функции после добавления заголовка наверху кода. Когда я запускаю компиляцию, я получаю неопределенную ошибку ссылки.OpenCV Undefined reference
Я делаю это для кодирования Android.
Ошибка приведены ниже (несколько ошибок):
Volumes/MAC/Farrakh/Software-Setups/android-ndk-r10c/toolchains/arm-linux-androideabi-
4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-
androideabi/bin/ld: ./obj/local/armeabi/objs/opencvtest/native.o: in function
cv::Mat::release():jni/opencv2/core/mat.hpp:366: error: undefined reference to
'cv::Mat::deallocate()'
/Volumes/MAC/Farrakh/Software-Setups/android-ndk-r10c/toolchains/arm-linux-androideabi-
4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-
androideabi/bin/ld: ./obj/local/armeabi/objs/opencvtest/native.o: in function
Java_com_whizpool_opencvtest_MainActivity_imread_11:jni/native.cpp:14: error: undefined reference
to 'cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&,
int)'
/Volumes/MAC/Farrakh/Software-Setups/android-ndk-r10c/toolchains/arm-linux-androideabi-
4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-
androideabi/bin/ld: ./obj/local/armeabi/objs/opencvtest/native.o: in function
Java_com_whizpool_opencvtest_MainActivity_imread_11:jni/opencv2/core/mat.hpp:277: error:
undefined reference to 'cv::fastFree(void*)'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libopencvtest.so] Error 1
Я пытался так много вещей, которые получили от Google, но я не получил никакого результата.
Ниже приведен код JNI, который используется для вызова кода Opencv C++.
#include "com_whizpool_opencvtest_MainActivity.h"
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv;
extern "C"
{
JNIEXPORT jlong JNICALL Java_com_whizpool_opencvtest_MainActivity_imread_11(JNIEnv *env, jclass obj, jstring string)
{
const char *w_buf = env->GetStringUTFChars(string, 0);
Mat imgMat = imread("abc", 0);
return 0;
}
}