我正在尝试在linux上运行cSipSimple应用程序。要构建它我使用链接http://code.google.com/p/csipsimple/wiki/HowToBuild。首先我安装了所有包。然后ndk和sdk已经安装在我的linux机器上了。所以我只在.bashrc中设置以下路径
“导出ANDROID_NDK = / home / nishant / JAVA / android-ndk-r6m-linux / export ANDROID_SDK = / home / nishant / JAVA / android-sdk-linux_86 / export PATH = $ PATH:$ ANDROID_SDK /工具:$ ANDROID_SDK /平台的工具:$ ANDROID_NDK“
现在当我运行命令make时,我收到以下错误: -
/家庭/ NISHANT / CSipSimple / JNI // PJSIP / android_toolchain / pjmedia /../../源/ pjmedia //../../ android_sources / pjmedia / SRC // pjmedia-AUDIODEV / opensl_dev.c : 在函数'opensl_create_stream'中: /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:532: 错误:'SL_ANDROID_STREAM_VOICE'未声明(首次使用此处 功能) /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:532: 错误:(每个未声明的标识符仅报告一次 /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:532: 错误:对于它出现的每个函数。) /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:557: 错误:'SL_ANDROID_KEY_STREAM_TYPE'未声明(首次使用此处 功能) /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:654: 错误:'SL_ANDROID_RECORDING_PRESET_GENERIC'未声明(首次使用于 这个功能) /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:669: 错误:'SL_ANDROID_KEY_RECORDING_PRESET'未声明(首次使用此处 function)make [1]: *
[/家/ NISHANT / CSipSimple / OBJ /本地/ armeabi / OBJ文件/ pj_opensl_dev /../../ android_sources / pjmedia / SRC // pjmedia-audiode
宏“SL_ANDROID_STREAM_VOICE”和其他宏,在文件“OpenSLES_AndroidConfiguration.h”中定义,位于ndk中。我没有得到它,我正在给ndk路径,但仍然为什么它无法追踪它。
我是否遗漏了为NDK设置路径的内容?
请帮忙
由于
答案 0 :(得分:2)
我在ndk源代码中跟踪版本android-ndk-r8d,文件平台/ android-9 / arch-arm / usr / include / SLES / OpenSLES_AndroidConfiguration.h:
第20行:
#ifdef __cplusplus
extern "C" {
// some source code
}
#endif
我认为,最好这样定义:
#ifdef __cplusplus
extern "C" {
#endif
// some source code
#ifdef __cplusplus
}
#endif
我将平台/ android-9 / arch-arm / usr / include / SLES / OpenSLES_AndroidConfiguration.h中的所有定义移动到pjmedia / src // pjmedia-audiodev / opensl_dev.c,它运行正常。但这不是一个好的解决方案。