`
Jclick
  • 浏览: 189346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

doubango编译

 
阅读更多

     doubango源码下载下来之后,对之进行编译,折腾了一天,才搞出来。本来对NDK也不是很熟,shell命令也懂的不多。结果就是在反复试了。编译静态库是在/doubango/android-projects/下面的buildAll.sh执行就Ok的。buildAll.sh只是指明了对哪些库进行打包,doubango的这些库是互相依赖的,详情可以看doubango官网。在google code IMSDroid项目中,维基百科里有一个关于imsdroid编译的,说的还算清除,但是我的就是编译不成功。一方面官方的root.mk是基于windows操作系统的ndk4进行编译的,而我用的是macos。也找不来ndk4的了,只好用了ndk8.下面是我改过的root.mk。。

######
##	Root configuration file shared by all android projects.
######

export ANDROID_NDK_ROOT=/Users/johanabusaken/software/android-ndk-r8
export ANDROID_SDK_ROOT=/Users/johanabusaken/software/android-sdk-macosx
export ANDROID_PLATFORM=android-5
export ANDROID_HOST=darwin-x86
export ANDROID_GCC_VER=4.4.3


# Output directory
export OUTPUT_DIR=$(shell pwd)/output
$(shell mkdir -p $(OUTPUT_DIR))

# Path where to copy executables -on the device or emulator-
export EXEC_DIR=/data/tmp
# Path where to copy libraries (*.so) -on the device or emulator-
export LIB_DIR=/system/lib

# Test the NDK directory structure
export ANDROID_NDK_BASE=$(shell if [ -r $(ANDROID_NDK_ROOT)/build/platforms ] ; then \
		echo $(ANDROID_NDK_ROOT)/build/platforms ; \
	elif [ -r $(ANDROID_NDK_ROOT)/platforms ] ; then \
		echo $(ANDROID_NDK_ROOT)/platforms ; \
	else \
		echo "Err_Unable_to_recognize_the_NDK_structure_for_ANDROID_NDK_BASE" ; \
	fi)

export ANDROID_NDK_TOOL_BASE=$(shell if [ -r $(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/arm-linux-androideabi-$(ANDROID_GCC_VER) ] ; then \
		echo $(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/arm-linux-androideabi-$(ANDROID_GCC_VER) ; \
	elif [ -r $(ANDROID_NDK_ROOT)/toolchains/arm-linux-androideabi-$(ANDROID_GCC_VER)/prebuilt/$(ANDROID_HOST) ] ; then \
		echo $(ANDROID_NDK_ROOT)/toolchains/arm-linux-androideabi-$(ANDROID_GCC_VER)/prebuilt/$(ANDROID_HOST) ; \
	else \
		echo "Err_Unable_to_recognize_the_NDK_structure_for_ANDROID_NDK_TOOL_BASE" ; \
	fi)

##################################################################################

export AR=$(ANDROID_NDK_TOOL_BASE)/bin/arm-linux-androideabi-ar
export CC=$(ANDROID_NDK_TOOL_BASE)/bin/arm-linux-androideabi-gcc-4.4.3
export CPP=$(ANDROID_NDK_TOOL_BASE)/bin/arm-linux-androideabi-g++


ifeq ($(LICENSE),)
	export LICENSE=gpl
endif


export CFLAGS_COMMON=$(CFLAGS) $(DEBUG_FLAGS) -I$(ANDROID_NDK_BASE)/$(ANDROID_PLATFORM)/arch-arm/usr/include \
-msoft-float \
-fpic \
-mthumb-interwork \
-ffunction-sections \
-funwind-tables \
-fstack-protector \
-D__ARM_ARCH_5__ \
-D__ARM_ARCH_5T__ \
-D__ARM_ARCH_5E__ \
-D__ARM_ARCH_5TE__ \
-MMD \
-MP \
-fno-short-enums \
-DANDROID=1

ifeq ($(NEON), yes)
export MARCH=armv7-a
export CFLAGS_COMMON+=-march=$(MARCH) -mtune=cortex-a8 -mfpu=neon -DHAVE_NEON=1 \
-D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -Wno-psabi -mfloat-abi=softfp
else
export MARCH=armv5te
export CFLAGS_COMMON+=-march=$(MARCH) -mtune=xscale
endif

export CFLAGS_LIB= $(CFLAGS_COMMON) \
-Os \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64 

export LDFLAGS_COMMON=$(LDFLAGS) -Wl,-rpath=/system/lib,-rpath-link=$(ANDROID_NDK_BASE)/$(ANDROID_PLATFORM)/arch-arm/usr/lib,-rpath-link=$(OUTPUT_DIR),-dynamic-linker=/system/bin/linker,-T,$(ANDROID_NDK_TOOL_BASE)/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.xsc -L$(ANDROID_NDK_TOOL_BASE)/lib/gcc/arm-linux-androideabi/4.4.3 \
	-nostdlib -L$(ANDROID_NDK_TOOL_BASE)/lib/gcc \
	-L$(ANDROID_NDK_TOOL_BASE)/lib/gcc/arm-linux-androideabi/4.4.3/ \
  -L$(ANDROID_NDK_BASE)/$(ANDROID_PLATFORM)/arch-arm/usr/lib
export LDFLAGS_COMMON+=-lc -ldl -L$(OUTPUT_DIR)

ifeq ($(BT), static)
	export EXT=a
	export LDFLAGS_LIB=
	
	export CFLAGS_LIB+=-static
else
	export EXT=so
	
	export LDFLAGS_LIB=$(LDFLAGS_COMMON)
	export LDFLAGS_LIB+=-Wl,--no-whole-archive
	export LDFLAGS_LIB+=-Wl,-soname,lib$(PROJECT).$(EXT),-Bsymbolic,-shared,--whole-archive
endif

 

再说下,doubango关于视频音频编码的控制主要在doubango/bindings/java/android/下面的gpl.sh或者lgps.sh或minimal.sh控制的,可以根据自己需要的编码进行修改。

分享到:
评论
3 楼 yuanshengwei005 2013-03-06  
杰迪-android 写道
你好,我编译buildall。sh 报错
cp: 无法获取"libtinySIP_armv5te.so" 的文件状态(stat): 没有那个文件或目录
你有遇到过吗


这个问题是因为你的gcc-ver设置不正确
2 楼 yuanshengwei005 2013-03-06  
直接按照官方的把参数设置正确就好了,什么都不特殊的改,我也是Mac OS 10.7
1 楼 杰迪-android 2012-10-10  
你好,我编译buildall。sh 报错
cp: 无法获取"libtinySIP_armv5te.so" 的文件状态(stat): 没有那个文件或目录
你有遇到过吗

相关推荐

    libgsm(doubango编译需要)

    如果在doubango中编译,需要的gsm库不对。吾经过一番折腾,终于找到了正确解决办法。具体可以参考: https://blog.csdn.net/quantum7/article/details/104087285 吾已将此代码上传到github: ...

    ubuntu环境编译Doubango库

    在Ubuntu环境中编译Doubango库是一个涉及到操作系统、编译工具和特定库的集成过程。Doubango是一个开源项目,提供了跨平台的多媒体通信框架,主要用于实现VoIP、视频通话和即时消息等功能。在Ubuntu系统上编译这个库...

    可编译链接的libg729源码(doubango编译需要)

    现在网上的g729,要么是原来的包下载,要么编译通过链接时出问题。吾专门研究后,修改并提交了代码。下载解压后,直接执行build.sh 也可以直接从github下载: https://github.com/quantum6/libg729

    编译 telepresence_2.1.0 :(doubango_2.0.7z.002)

    "F:\LAB\Svr_VoIP\Doubango_\doubango\branches\2.0\OpenOffice_4.0.0_SDK\sdk\bin/cppumaker" -Gc -BUCR -O"F:\LAB\Svr_VoIP\Doubango_\doubango\branches\2.0\OpenOffice_4.0.0_SDK\sdk\includecpp" "E:\Program ...

    编译 telepresence_2.1.0 :(doubango_2.0.7z.001)

    "F:\LAB\Svr_VoIP\Doubango_\doubango\branches\2.0\OpenOffice_4.0.0_SDK\sdk\bin/cppumaker" -Gc -BUCR -O"F:\LAB\Svr_VoIP\Doubango_\doubango\branches\2.0\OpenOffice_4.0.0_SDK\sdk\includecpp" "E:\Program ...

    doubango_IMS_compile.zip_doubango_doubango pudn

    在本文中,我们将深入探讨标题为“doubango_IMS_compile.zip_doubango_doubango pudn”的压缩包文件中的核心知识点——如何编译doubango IMS协议栈的源代码。 doubango是一个开源项目,旨在实现IMS协议栈以及相关的...

    编译 telepresence_2.1.0 :(trunk.7z)

    "F:\LAB\Svr_VoIP\Doubango_\doubango\branches\2.0\OpenOffice_4.0.0_SDK\sdk\bin/cppumaker" -Gc -BUCR -O"F:\LAB\Svr_VoIP\Doubango_\doubango\branches\2.0\OpenOffice_4.0.0_SDK\sdk\includecpp" "E:\Program ...

    boghe编译好版本

    基于doubango的pc客户端,boghe,编译好的版本,注意,因为大小限制,这里只有boghe,请到http://blog.csdn.net/haoyujie/article/details/79058786,去找doubango的下载位置,需要windows sdk 7.0,和directx 9

    LINUX下Android NDK下载并配置

    编译doubango:编译arm64,16b版本会出错(stderr/stdout)。试了更低版本都不对,干脆不编译这个了。 解压 unzip android-ndk-r16b-linux-x86_64.zip 配置 export NDK=/home/quantum6/android-ndk-16b

    iLBC已编译通过的源码及编译脚本

    svn co ...所以吾提供了这个源码包,已编译通过,且有build.sh可编译。 具体博文是: https://blog.csdn.net/quantum7/article/details/104087424

    SIP客户端(软电话,Windows版)Boghe

    "自己编译也很繁琐"暗示了该软件可能需要复杂的构建过程,这对于普通用户来说并不友好。因此,提供这个最新的客户端安装包是为了方便用户进行VoIP测试和试用。"如需二次开发也可私信联系"意味着该软件可能支持定制化...

    Android imsdroid源码

    imsdroid项目允许开发者在Android应用中集成SIP电话功能,它提供了完整的源码,可以被直接编译和修改以适应不同的需求。 imsdroid的核心组件包括以下几个方面: 1. **SIP注册与会话管理**:imsdroid实现了SIP的...

    编译 telepresence_2.1.0 :(OpenOffice-SDK_4.0.0)

    编译 telepresence_2.1.0 第三方依赖库 : OpenOffice_4.0.0_SDK , Apache_OpenOffice_4.1.1_Win_x86_install_zh-CN.exe(两个*.rdb文件)

    编译 telepresence_2.1.0 :(OpenOffice_4.1.1_x86_zh-CN.exe.001)

    编译 telepresence_2.1.0 第三方依赖库 : OpenOffice_4.0.0_SDK , Apache_OpenOffice_4.1.1_Win_x86_install_zh-CN.exe(两个*.rdb文件)

    编译 telepresence_2.1.0 :(OpenOffice_4.1.1_x86_zh-CN.exe.002)

    编译 telepresence_2.1.0 第三方依赖库 : OpenOffice_4.0.0_SDK , Apache_OpenOffice_4.1.1_Win_x86_install_zh-CN.exe(两个*.rdb文件)

    sipml5世界上第一个HTML5 SIP客户端

    Doubango 推出了“世界上第一个HTML5 SIP客户端”:SipML5,实现了基于Chrome的SIP客户端,并与自己先前的开源产品Idoubs和IMSDroid实现互通。就像主页里的两个Demo视频显示的一样,你可以轻松实现Chrome和iOS/...

    WebRTC Agent Console 手册

    该手册中提到的 RPM 包集用于安装 Doubango 的媒体网关 Webrtc2sip,并在 Elastix 的呼叫中心模块中添加代理控制台,从而实现基于 Doubango WebRTC API 和 SIPML5 的电话功能。需要注意的是,在使用该插件时,必须...

Global site tag (gtag.js) - Google Analytics