ubuntu14下编译android jrtplib

本文介绍了一个RTP系统的搭建过程,包括jthread和jrtplib的编译与配置。通过具体的步骤指导如何设置编译环境,并提供了编译脚本示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想搞一下rtp做个系统玩玩,上网查了N多资料,但是各种资料都是c2c,反正没搞定,

只好自己摸索,现在把编译及配置文件贴上做个记录

参考资料:

https://github.com/jimjh/JRTPLib-for-Android

先下载 jthread1.3.1和jrtplib-3.9.1 解压后放在同一目录

1 进入jthread1.3.1,创建目录android-build

2,修改src/pthread/jthread.cpp的125行,找到pthread_cancel(threadid);并注释之,替换成 pthread_kill(threadid, SIGUSR1);

3 创建文件 android.sh,内容如下

#!/bin/sh  

export NDK_ROOT=/Users/feng/Documents/workspace/android-ndk/android-ndk-r10e/
export PATH="${NDK_ROOT}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/:${PATH}"
SYS_ROOT="${NDK_ROOT}/platforms/android-17/arch-arm"
PREF="arm-linux-androideabi-"

C_FLAGS="   -lc \
            -lgcc \
            -lstdc++ \
            -I${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.9/include \
            -I${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include \
            -L../jthread-1.3.1/android-build/lib \
            -L${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/armeabi"
OUT_DIR="`pwd`/android-build"
#           -lsupc++ \不知是个啥,加上不能过

set -e

export CC="${PREF}gcc  --sysroot=${SYS_ROOT}"
export CXX="${PREF}g++  --sysroot=${SYS_ROOT}"
export LD="${PREF}ld  --sysroot=${SYS_ROOT}"
export CPP="${PREF}cpp  --sysroot=${SYS_ROOT}"
export AS="${PREF}as"
export OBJCOPY="${PREF}objcopy"
export OBJDUMP="${PREF}objdump"
export STRIP="${PREF}strip"
export RANLIB="${PREF}ranlib"
export CCLD="${PREF}gcc  --sysroot=${SYS_ROOT}"
export AR="${PREF}ar"

cmake   \
        -DCMAKE_SYSTEM_NAME="Generic" \
        -DCMAKE_CXX_FLAGS="${C_FLAGS}" \
        -DCMAKE_FIND_ROOT_PATH="${SYS_ROOT}" \
        -DCMAKE_INSTALL_PREFIX="${OUT_DIR}"
make && \
make install

cd ${OUT_DIR}/lib && \
${AR} -x libjthread.a && \
${CXX} ${C_FLAGS} -shared -Wl,-soname,libjthread.so -o libjthread.so  *.obj && \
rm *.obj

exit 0

执行android.sh

编译jrtplib

1,返回上一步目录,进入jrtplib-3.9.1

创建目录android-build

2.创建android.sh,内容如下

#!/bin/sh  

export NDK_ROOT=/Users/feng/Documents/workspace/android-ndk/android-ndk-r10e/
export PATH="${NDK_ROOT}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/:${PATH}"
SYS_ROOT="${NDK_ROOT}/platforms/android-17/arch-arm"
PREF="arm-linux-androideabi-"

C_FLAGS="    -lc \
            -lgcc \
            -lstdc++ \
            -I${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.9/include \
            -I${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include \
            -L../jthread-1.3.1/android-build/lib \
            -L${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/armeabi"
OUT_DIR="`pwd`/android-build"
#            -lsupc++ \不知是个啥,加上不能过

#-lstdc++ \
#            -I${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.9/include \
#            -I${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include \
#  include<new>,如果没有上面就会报这个头找不到
#


set -e

export CC="${PREF}gcc  --sysroot=${SYS_ROOT}"
export CXX="${PREF}g++  --sysroot=${SYS_ROOT}"
export LD="${PREF}ld  --sysroot=${SYS_ROOT}"
export CPP="${PREF}cpp  --sysroot=${SYS_ROOT}"
export AS="${PREF}as"
export OBJCOPY="${PREF}objcopy"
export OBJDUMP="${PREF}objdump"
export STRIP="${PREF}strip"
export RANLIB="${PREF}ranlib"
export CCLD="${PREF}gcc  --sysroot=${SYS_ROOT}"
export AR="${PREF}ar"

cmake    \
        -DCMAKE_SYSTEM_NAME="Generic" \
        -DCMAKE_CXX_FLAGS="${C_FLAGS}" \
        -DCMAKE_FIND_ROOT_PATH="${SYS_ROOT}" \
        -DJTHREAD_INCLUDE_DIRS="../jthread-1.3.1/android-build/include" \
        -DJTHREAD_LIBRARIES="../jthread-1.3.1/android-build/lib" \
        -DCMAKE_PREFIX_PATH="../jthread-1.3.1/android-build" \
        -DCMAKE_INSTALL_PREFIX="${OUT_DIR}" .
        

        
make && \
make install

cd ${OUT_DIR}/lib && \
${AR} -x libjrtplib.a && \
${CXX} ${C_FLAGS} -shared -Wl,-soname,libjrtplib.so -o libjrtplib.so  *.obj && \
rm *.obj

exit 0


需要注释  add_subdirectory(examples)

执行,祝好运,就能生成,下一步再接着搞,一步步来






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值