我试图在linux上运行cSipSimple应用程序。为了构建它,我使用linkhttp://code.google.com/p/csipsimple/wiki/HowToBuild。首先我已经安装了所有的软件包。然后ndk和sdk已经安装在我的linux机器上。所以我在.bashrc中设置了如下路径
“导出ANDROID\u NDK=/home/nishant/JAVA/ANDROID-NDK-r6m-linux/export
ANDROID_SDK=/home/nishant/JAVA/ANDROID-SDK-linux_86/export
PATH=$PATH:$ANDROID\u SDK/工具:$ANDROID\u SDK/平台工具:$ANDROID\u NDK“
现在,当我运行command make时,出现以下错误:-
/home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/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”未声明(首次在此中使用
函数)make[1]:*
[/home/nishant/CSipSimple/obj/local/armeabi/objs/pj_opensl_dev/../../android_sources/pjmedia/src//pjmedia audiode
宏“SL_ANDROID_STREAM_VOICE”和其他宏,在位于ndk的文件“OpenSLES_AndroidConfiguration.h”中定义。我不明白,我给了ndk路径,但仍然不能追踪它的原因。
我是否遗漏了为NDK设置路径的内容?
请帮助
谢谢

最佳答案

我在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

我将platforms/android-9/arch arm/usr/include/SLES/OpenSLES_AndroidConfiguration.h中的所有define移到pjmedia/src//pjmedia audiodev/opensl_dev.c,它工作正常。但这不是个好办法。

08-17 03:06