0

我正在尝试在 linux 上运行 cSipSimple 应用程序。要构建它,我使用链接http://code.google.com/p/csipsimple/wiki/HowToBuild。首先我已经安装了所有的包。然后 ndk 和 sdk 已经安装在我的 linux 机器上。所以我只是在 .bashrc 中设置以下路径

"export ANDROID_NDK=/home/nishant/JAVA/android-ndk-r6m-linux/export ANDROID_SDK=/home/nishant/JAVA/android-sdk-linux_86/export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform -工具:$ANDROID_NDK"

现在,当我运行命令 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]:/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]:/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/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/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]:/android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:669:错误:'SL_ANDROID_KEY_RECORDING_PRESET'未声明(在此函数中首次使用)make [1]:/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”和其他宏,定义在文件“OpenSLES_AndroidConfiguration.h”中,该文件位于ndk中。我不明白,我正在提供 ndk 路径,但仍然为什么它无法追踪它。

我是否缺少为 NDK 设置路径的东西?

请帮忙

谢谢

4

1 回答 1

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 并且它工作正常。但这不是一个好的解决方案。

于 2013-01-11T10:52:08.277 回答