pjsip编译主要是找到编译器路径,Xcode5开始所有版本,系统的gcc整合到xcrun中了,需要用参数来区分
————————————————————————————————————–
在pjlib/include/pj/目录下增加config_site.h文件,内容如下:
#ifdef __LP_IOS #define PJ_CONFIG_IPHONE 1 #include <pj/config_site_sample.h> #define PJMEDIA_HAS_SRTP 0 #elif defined(__LP_ANDROID) #define PJ_CONFIG_ANDROID 1 #include <pj/config_site_sample.h> #define PJMEDIA_HAS_SRTP 0 #undef PJMEDIA_AUDIO_DEV_HAS_OPENSL #define PJMEDIA_AUDIO_DEV_HAS_OPENSL 0 #endif
注:__LP_IOS、__LP_ANDROID是我编译时自己添加的,用来区分不同平台。
应用工程配置宏定义:PJ_AUTOCONF=1
————————————————-iPhone编译————————————————————-
export CC="xcrun -sdk iphoneos clang" export DEVPATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer" export IPHONESDK="iPhoneOS8.2.sdk" export ARCH="-arch arm64" ./configure-iphone --disable-resample --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-speex-aec --disable-speex-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-gsm-codec --disable-ssl --disable-floating-point --disable-small-filter --disable-large-filter --disable-opencore-amr --disable-silk --disable-ilbc-codec --disable-sound --disable-oss make install-iphoneos
—————————————————-iPhone模拟器编译———————————————————-
export DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer export IPHONESDK="iPhoneSimulator8.2.sdk" export ARCH="-arch i386" export CFLAGS="-O2 -m32 -mios-simulator-version-min=5.0" export LDFLAGS="-O2 -m32 -mios-simulator-version-min=5.0" ./configure-iphone --disable-resample --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-speex-aec --disable-speex-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-gsm-codec --disable-ssl --disable-floating-point --disable-small-filter --disable-large-filter --disable-opencore-amr --disable-silk --disable-ilbc-codec --disable-sound --disable-oss make install-iphonesimulator
把相应的NDK路径改为自己的安装路径即可
——————————————————Android编译——————————————————–
export ANDROID_NDK_ROOT=~/Develop/Software/android-ndk-r9d ./configure-android --disable-resample --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-speex-aec --disable-speex-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-gsm-codec --disable-ssl --disable-floating-point --disable-small-filter --disable-large-filter --disable-opencore-amr --disable-silk --disable-ilbc-codec --disable-sound
一键编译脚本:
1.iPhone
#!/bin/bash # Choose your pjproject version and your currently-installed iOS SDK version: # VERSION="2.2.1" SDKVERSION="9.0" # # # # Don't change anything under this line! # # No need to change this since xcode build will only compile in the # necessary bits from the libraries we create ARCHS="armv7 armv7s arm64 i386 x86_64" DEVELOPER=`xcode-select -print-path` if [ ! -e "${DEVELOPER}" ]; then echo "please install xcode!!!" exit 1; fi REPOROOT=$(pwd) # Where we'll end up storing things in the end BUILDDIR="${REPOROOT}/build" mkdir -p $BUILDDIR # where we will keep our sources and build from. #SRCDIR="${BUILDDIR}/src" #mkdir -p $SRCDIR # where we will store intermediary builds INTERDIR="${BUILDDIR}/built" mkdir -p $INTERDIR #cd $SRCDIR # Exit the script if an error happens #set -e #if [ ! -e "./pjproject-${VERSION}.tar.bz2" ]; then # echo "Downloading pjproject-${VERSION}.tar.bz2" # curl -LO http://pjproject.org/releases/pjproject-${VERSION}.tar.bz2 #else # echo "Using pjproject-${VERSION}.tar.bz2" #fi #if [ ! -e "./pjproject" ]; then # tar zxf pjproject-${VERSION}.tar.bz2 -C ./ # mv pjproject-${VERSION} pjproject #else # echo "Using existing pjproject dir" #fi #cd "./pjproject" # build and install for iARCH in ${ARCHS} do make clean >/dev/null && make distclean >/dev/null rm build.mak if [ "${iARCH}" = "i386" ] || [ "${iARCH}" = "x86_64" ]; then PLATFORM="iPhoneSimulator" export CFLAGS="-O2 -m32 -mios-simulator-version-min=${SDKVERSION}" export LDFLAGS="-O2 -m32 -mios-simulator-version-min=${SDKVERSION}" else PLATFORM="iPhoneOS" #export CFLAGS="-miphoneos-version-min=${SDKVERSION}" fi mkdir -p "${INTERDIR}/ios-${iARCH}" export CC="xcrun -sdk iphoneos clang" export DEVPATH="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer" export ARCH="-arch ${iARCH}" export IPHONESDK="${PLATFORM}${SDKVERSION}.sdk" ./configure-iphone --prefix="${INTERDIR}/ios-${iARCH}" --disable-resample --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-speex-aec --disable-speex-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-gsm-codec --disable-ssl --disable-floating-point --disable-small-filter --disable-large-filter --disable-opencore-amr --disable-silk --disable-sound --disable-oss --disable-ilbc-codec make dep && make && make install && make clean >/dev/null done build iphoneos mkdir -p "${INTERDIR}/ios-iphoneos/lib" cd "${INTERDIR}/ios-armv7/lib" for file in *.a do cd ${INTERDIR} xcrun -sdk iphoneos lipo -output ios-iphoneos/lib/$file -create -arch armv7 ios-armv7/lib/$file -arch armv7s ios-armv7s/lib/$file -arch arm64 ios-arm64/lib/$file echo "ios-iphoneos $file created." done cp -r ${INTERDIR}/ios-armv7/include ${INTERDIR}/ios-iphoneos/ echo "iphoneos Done." build iphonesimulator mkdir -p "${INTERDIR}/ios-iphonesimulator/lib" cd "${INTERDIR}/ios-i386/lib" for file in *.a do cd ${INTERDIR} xcrun -sdk iphoneos lipo -output ios-iphonesimulator/lib/$file -create -arch i386 ios-i386/lib/$file -arch x86_64 ios-x86_64/lib/$file echo "ios-iphonesimulator $file created." done #cp -r ${INTERDIR}/ios-i386/lib ${INTERDIR}/ios-iphonesimulator/ cp -r ${INTERDIR}/ios-i386/include ${INTERDIR}/ios-iphonesimulator/ echo "iphonesimulator Done."
2.Android
#!/bin/bash # Choose your pjproject version and your currently-installed Android SDK version: # VERSION="2.2.1" SDKVERSION=android-19 # # # # Don't change anything under this line! # # No need to change this since ndk build will only compile in the # necessary bits from the libraries we create ABIS="armeabi armeabi-v7a arm64-v8a x86" NDKPATH=`which ndk-build` DEVELOPER=`dirname ${NDKPATH}` echo "NDK-PATH: $DEVELOPER" if [ "$DEVELOPER" == "" ]; then echo "ERROR: not found ndk-build" exit 1; fi REPOROOT=$(pwd) # Where we'll end up storing things in the end BUILDDIR="${REPOROOT}/build" mkdir -p $BUILDDIR # where we will keep our sources and build from. #SRCDIR="${BUILDDIR}/src" #mkdir -p $SRCDIR # where we will store intermediary builds INTERDIR="${BUILDDIR}/built" mkdir -p $INTERDIR # build and install for iABI in ${ABIS} do make clean >/dev/null && make distclean >/dev/null rm build.mak export ANDROID_NDK_ROOT=${DEVELOPER} APP_PLATFORM=${SDKVERSION} TARGET_ABI=${iABI} ./configure-android --prefix="${INTERDIR}/android-${iABI}" --disable-resample --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-speex-aec --disable-speex-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-gsm-codec --disable-ssl --disable-floating-point --disable-small-filter --disable-large-filter --disable-opencore-amr --disable-silk --disable-ilbc-codec --disable-sound make dep && make && make install && make clean >/dev/null done echo "android Done."
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232205.html原文链接:https://javaforall.net
