pjsip编译

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."



 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值