Я пытаюсь встроить некоторые функции WebRTC в проект.Ранее мы уже работали с кодом C-only, и я пытаюсь добавить больше файлов.Новые файлы - C ++, и когда я запускаю ndk-build
, я получаю ошибки, связанные с C ++, включают:
[armeabi] Compile++ thumb: zello.webrtc <= audio_frame.cc
In file included from libwebrtc/jni/libwebrtc/api/audio/audio_frame.cc:15:
libwebrtc/jni/libwebrtc/rtc_base/checks.h:36:10: fatal error:
'sstream' file not found
#include <sstream>
^~~~~~~~~
1 error generated.
Мои Application.mk
файлы включают в себя
APP_ABI := armeabi armeabi-v7a arm64-v8a x86 x86_64
APP_OPTIM := release
APP_PLATFORM := android-15
APP_STL := c++_shared
APP_CPPFLAGS := -fexceptions
NDK_TOOLCHAIN_VERSION := clang
и моиAndroid.mk
файл включает в себя
LOCAL_CPPFLAGS := -std=c++11
LOCAL_CPP_EXTENSION := .cpp .cc
LOCAL_SRC_FILES := \
webrtc-jni.cpp \
libwebrtc/api/audio/audio_frame.cc \
...
Я пытался явно добавить
LOCAL_C_INCLUDES += $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/include
, но это просто приводит к большему количеству ошибок в отношении неопределенных функций, и не кажется, что это необходимона первом месте.Я также попытался указать все другие значения для APP_STL
безрезультатно.
Я строю с NDK 16b, так как нам все еще нужно поддерживать armeabi
устройства.
Спасибо взаранее за любые предложения.
РЕДАКТИРОВАТЬ: Когда я запускаю ndk-build V=1
, я вижу, что ndk-build
, вероятно, использует неправильный каталог заголовка STL:
... -I${NDK_ROOT}/sources/cxx-stl/system/include ...
, но я определил APP_STL
as c++_shared
, который я думаю, должен искать в другом каталоге.