ld: error: undefined symbol: createFFmpeg(int*, int*, char const*)
>>> referenced by native-lib.cpp:356 (D:/AndroidStudioProjects/ffmpeg/app/src/main/cpp\native-lib.cpp:356)
>>> CMakeFiles/ffmpeg.dir/native-lib.cpp.o:(Java_com_example_ffmpeg_MainActivity_playAudioByOpenGL)
>>> did you mean: extern "C" createFFmpeg
由于是在C++文件中 JNI接口又配置了 extern "C",但是头文件直接放在C++里就会报这样的错误
解决方法:
将头文件 放到 extern “C”结构里
extern "C"{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/imgutils.h>
#include <android/native_window.h>
#include <unistd.h>
#include <android/native_window_jni.h>
#include "test/log.h"
#include <libswresample/swresample.h>
#include "test/audio.h"
}