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 -tools:$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: error: 'SL_ANDROID_RECORDING_PRESET_GENERIC' undeclared (この関数で最初に使用) /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: error: 'SL_ANDROID_RECORDING_PRESET_GENERIC' undeclared (この関数で最初に使用) /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" およびその他のマクロは、ndk. わかりません。ndkパスを指定していますが、それでも追跡できないのはなぜですか。

NDK のパスを設定するために何か不足していますか?

助けてください

ありがとう

4

1 に答える 1

2

バージョン android-ndk-r8d、ファイル platform/android-9/arch-arm/usr/include/SLES/OpenSLES_AndroidConfiguration.h の ndk ソースをトレースします。

20行目:

#ifdef __cplusplus
extern "C" {

// some source code

}
#endif

私は、次のように定義する方が良いと思います:

#ifdef __cplusplus
extern "C" {
#endif

// some source code

#ifdef __cplusplus
}
#endif

platform/android-9/arch-arm/usr/include/SLES/OpenSLES_AndroidConfiguration.h のすべての定義を pjmedia/src//pjmedia-audiodev/opensl_dev.c に移動すると、正常に動作します。しかし、これは良い解決策ではありません。

于 2013-01-11T10:52:08.277 に答える