PJSIP + FFMPEG构建错误

时间:2017-08-31 14:35:48

标签: android ffmpeg pjsip

我正在尝试使用FFMPEG for Android构建PJSIP。 为了使用rtmp和openssl构建FFMPEG,我使用这个项目: https://github.com/cine-io/android-ffmpeg-with-rtmp

它编译得非常好。

然后我用ffmpeg编译pjsip 2.6。以下是构建文件中的部分:

    APP_PLATFORM=android-${TARGET_ANDROID_API} NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=$arch ./configure-android --use-ndk-cflags \
                                     --with-ssl="${OPENSSL_BUILD_OUT_PATH}/libs/${arch}" \
                                     --with-ffmpeg="${BASE_DIR}/ffmpeg-output"
                                     >>"${FINAL_BUILD_LOGS}/${arch}.log" 2>&1

我的目标ABI是 armeabi

另外,我已经定义了这两个标志:

#define PJMEDIA_HAS_VIDEO 1

#define PJMEDIA_HAS_FFMPEG 1

但构建失败了,有两个错误:

错误:找不到-lbz2

错误:找不到-lasound

在我的Ubuntu 16.04 LTS VM上安装了libasound2-dev和bzip2。

在此之前,我已成功使用OpenH264制作了pjsip版本,没有这样的错误。

有没有办法告诉链接器(或其他什么)如何找到这些包?

1 个答案:

答案 0 :(得分:1)

通过为上面的每个库编译.a libs并将它们添加到pjsip库路径来解决这个问题(thx @NandhaKumar):

  • 构建.a libs。
  • 将lib复制到{PJPROJECT} / third_party / lib /文件夹。
  • 转到PJSIP项目文件夹中的build.mak.in文件。
  • 添加以下行:

APP_THIRD_PARTY_LIB_FILES + = $(PJ_DIR)/third_party/lib/libbz2.a APP_THIRD_PARTY_LIB_FILES + = $(PJ_DIR)/third_party/lib/libasound.a

  • 在我的情况下(我仍然不知道为什么)第二行并定义另一行 (APP_THIRD_PARTY_LIBS + = -lsound或APP_THIRD_PARTY_LIBS + = -lasound)没有帮助,所以我只是将这个库复制到android_ndk文件夹中:

机器人-NDK-r10e /工具链/臂-Linux的androideabi-4.9 /预建/ Linux的x86_64的/ LIB / GCC /臂-Linux的androideabi / 4.9 / libasound.a