linphone 编译过程

编译过程如下:

用到的安装包

下面的过程最好按照顺序进行!有一些库也是依赖关系。

export PREFIX=/usr/

export HOSTTPL=arm-none-linux-gnueabi

export INSTALLDIR=/home/linux/linphone/install

tslib

$ sudo apt-get install libtool automake autoconf

$ ./autogen.sh

$ echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux.cache

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --cache-file=arm-linux.cache

$ make

$ make install DESTDIR=$INSTALLDIR

libiconv

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld

$ make

$ make install DESTDIR=$INSTALLDIR

SDL

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --build=i386 --with-gnu-ld --disable-video-nanox --disable-video-qtopia --disable-pulseaudio --disable-video-photon  --disable-video-ggi --disable-video-svga --disable-video-aalib --disable-video-dummy --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-video-x11 --disable-nasm --enable-joystick --enable-input-tslib --enable-video-fbcon   CPPFLAGS="-I$INSTALLDIR/usr/local/include"   LDFLAGS="-L$INSTALLDIR/usr/local/lib -lts -liconv"

$ make

$ make install DESTDIR=$INSTALLDIR

$ sudo apt-get install intltool

ncurses

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-shared --with-gnu-ld

$ make

$ make install DESTDIR=$INSTALLDIR

readline

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --disable-static

$ make

$ make install DESTDIR=$INSTALLDIR

libosip2

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static

$ make

$ make install DESTDIR=$INSTALLDIR

libogg

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld

$ make

$ make install DESTDIR=$INSTALLDIR

rm $INSTALLDIR$PREFIX/lib/*.la

对于la文件和intltool的关系请自行查阅相关资料。

libeXosip2

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static OSIP_CFLAGS="-I$INSTALLDIR/usr/local/include" OSIP_LIBS="-L$INSTALLDIR/usr/local/lib -losip2 -losipparser2"

$ make

$ make install DESTDIR=$INSTALLDIR

此处编译若出现找不到关于openssl相关链接符号信息,请将交叉编译工具链中openssl的相关文件删除即可,否则请移植完整的openssl并确保正确。(update 2013.1.2)

speex

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static --enable-fixed-point --enable-arm-asm --with-ogg="$INSTALLDIR/usr/local"

$ make

$ make install DESTDIR=$INSTALLDIR

libav

$ ./configure --prefix=$PREFIX --enable-cross-compile --cross-prefix=arm-none-linux-gnueabi- --arch=armv4 --target-os=linux

$ make

$ make install DESTDIR=$INSTALLDIR

其中--arch=armv4请修改为所开发平台对应的信息

libvorbis

$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --with-ogg="$INSTALLDIR/usr/local"

$ make

$ make install DESTDIR=$INSTALLDIR

zlib

$ ./configure --prefix=$PREFIX

修改Makefile

CC=gcc =〉

CC=arm-none-linux-gnueabi-gcc

LDSHARED=gcc -shared -Wl,-soname,libz.so.1,--version-    script,zlib.map =〉

LDSHARED=arm-none-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map

CPP=gcc -E =〉

CPP=arm-none-linux-gnueabi-gcc -E

AR=ar rc =〉

AR=arm-none-linux-gnueabi-ar rc

$ make

$ make install DESTDIR=$INSTALLDIR

libv4l

修改Makefile,

$ vi libv4l1/Makefile

$ vi libv4l2/Makefile

$ vi libv4lconvert/Makefile

在文件起始处增加以下两行:

CC=arm-none-linux-gnueabi-gcc

AR=arm-none-linux-gnueabi-ar

$ make

$ make install DESTDIR=$INSTALLDIR

有些交叉工具链可能没有videodev.h文件,修改Makefile以去除对libv4l1的变异,同时在linphone编译时不加入libv4l1。

rm $INSTALLDIR$PREFIX/lib/*.la

linphone

$ cd mediastreamer2/src

$ patch < mediastreamer-2.7.3-ms_sws_fix.patch  //右击另存为

linphone-3.5.2使用mediastreamer2-2.8.2版本已修复此错误(update 2013.1.2)

$ ./configure --prefix=$PREFIX --host=$HOSTTPL \

--disable-static --disable-glib --enable-gtk_ui=no --disable-xv  --disable-x11 --disable-pulseaudio \

--enable-video --enable-ffmpeg  --enable-sdl --enable-libv4l --enable-oss --enable-ipv6 \

--with-gnu-ld \

--with-ffmpeg=$INSTALLDIR/usr/local \

--with-libiconv-prefix=$INSTALLDIR/usr/local \

--with-osip=$INSTALLDIR/usr/local \

--with-readline=$INSTALLDIR/usr/local \

SPEEX_CFLAGS="-I$INSTALLDIR/usr/local/include" \

SPEEX_LIBS="-L$INSTALLDIR/usr/local/lib -lspeex" \

FFMPEG_CFLAGS="-I$INSTALLDIR/usr/local/include" \

FFMPEG_LIBS="-L$INSTALLDIR/usr/local/lib -lavcodec" \

SWSCALE_CFLAGS="-I$INSTALLDIR/usr/local/include" \

SWSCALE_LIBS="-L$INSTALLDIR/usr/local/lib -lswscale" \

SDL_CFLAGS="-I$INSTALLDIR/usr/local/include" \

SDL_LIBS="-L$INSTALLDIR/usr/local/lib -lSDL" \

OSIP_CFLAGS="-I$INSTALLDIR/usr/local/include" \

OSIP_LIBS="-L$INSTALLDIR/usr/local/lib -losip2 -losipparser2 -leXosip2" \

SPEEX_CFLAGS="-I$INSTALLDIR/usr/local/include" \

SPEEX_LIBS="-L$INSTALLDIR/usr/local/lib -lspeex -lspeexdsp"  \

SPEEXDSP_CFLAGS="-I$INSTALLDIR/usr/local/include" \

SPEEXDSP_LIBS="-L$INSTALLDIR/usr/local/lib -lspeex -lspeexdsp" \

LIBV4L2_CFLAGS="-I$INSTALLDIR/usr/local/include" \

LIBV4L2_LIBS="-L$INSTALLDIR/usr/local/lib -lv4l2" \

LIBV4L1_CFLAGS="-I$INSTALLDIR/usr/local/include" \

LIBV4L1_LIBS="-L$INSTALLDIR/usr/local/lib -lv4l1"

配置完configure后修改Makefile如下:

mediastreamer2/tests/Makefile

LIBS =  -pthread -lpthread -lrt -lvorbisenc -lv4l1 -lv4l2 -lv4lconvert -liconv -lvorbis -logg -lz

coreapi/Makefile

LIBS =  -lspeex -lspeexdsp -lSDL -lvorbisenc -lv4l1 -lv4l2 -lv4lconvert -       liconv -lvorbis -logg -lz -lavutil

coreapi/help/Makefile

LIBS =  -losip2 -losipparser2 -leXosip2 -lspeex -lspeexdsp -lSDL -lvorbisenc -  lv4l1 -lv4l2 -lv4lconvert -liconv -lvorbis -logg -lz -lavutil

helloworld_LDADD = $(top_builddir)/coreapi/liblinphone.la \

$(EXOSIP_LIBS) \

$(MEDIASTREAMER_LIBS) \

$(ORTP_LIBS)

console/Makefile

LIBS =  -lSDL -lvorbisenc -lv4l1 -lv4l2 -lv4lconvert -liconv -lvorbis -logg -   lz -lavutil

linphonecsh_LDADD = $(ORTP_LIBS) -L/home/linux/linphone/install/usr/local/lib

#此处路径为交叉编译库安装的位置

$ make

$ make install DESTDIR=$INSTALLDIR

linphone 编译过程

时间: 2024-08-29 04:01:37

linphone 编译过程的相关文章

2.4、uboot配置和编译过程详解

2.4.1.uboot主Makefile分析1 2.4.1.1.uboot version分析 (1)uboot版本号分为3个级别: VERSION:主版本号 PATCHLEVEL:次版本号 SUBLEVEL:再次版本号 EXTRAVERSION:另外附加的版本信息 这四个用.隔开共同构成了最终的版本号. (2)Makefile中版本号最终生成了一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号 (3)include/version_autogenerated.h

FFmpeg在Linux下安装编译过程

转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52402759 今天介绍下FFmpeg在Linux下安装编译过程,用的是CentOS, 总体过程比较顺利,就是在ffmpeg等的时间稍长点.没什么技术难点.仅当记录. 关于FFmpeg FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包

编译过程中,termcap.h 文件找不到路径 licli.a终于生成

编译过程中,termcap.h      文件找不到路径 查看是linux  源码下找不到termcap.h文件 安装了所有关于*cap*的源码包也不起作用 今天终于解决了这个问题,搜termcap.h  发现一篇文章,如下 ----------------------------------------------------------------------------------------- 安装minicom2.3出现termcap.h错误解决方法 2010-05-06 17:12:

GCC与编译过程

GCC与编译过程   GCC(GNU Compiler Colletion),GUN编译器套装,是一套由GNU开发的编程语言编译器.Linux系统下的GCC编译器实际上是调用其他不同的工具来完成预处理.编译.汇编和链接工作. 一.编译过程 在计算机的眼里,只有1和0.不幸的是,我们用C语言写出来的代码,计算机无法直接看明白.所以一个程序如果需要被计算机执行,那么就必须翻译成能被计算机读懂并执行的1和0.实现这一结果的过程,我们称之为编译. 编译包括以下步骤:预处理.编译.汇编和链接.具体过程如下

Hive SQL的编译过程

Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析.Hive的稳定性和性能对我们的数据分析非常关键. 在几次升级Hive的过程中,我们遇到了一些大大小小的问题.通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有了比较深入的理解.对这一过程的理解不仅帮助我们解决了一些Hive的bug,也有利于我们优化Hive SQL

C程序编译过程浅析【转】

转自:http://blog.csdn.net/koudaidai/article/details/8092647 前几天看了<程序员的自我修养——链接.装载与库>中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧. 我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下. hello.c源代码如下: ?[Copy to clipboard] C 1 2 3 4 5 6 [c] view plaincopy <span style=&qu

Windows下Caffe在GPU编译过程

Windows下Caffe在GPU编译过程 GeForce8800 GTS512: cc=1.1 CUDA6.5 问题一: src/caffe/layers/conv_layer.cu(20): error : too few arguments in function call Error in in conv_layer.cu :forward_gpu_gemm needs the argument skip_im2col #1962 解决: https://github.com/BVLC/

【转】 Apk文件及其编译过程

Apk文件概述 Android系统中的应用程序安装包都是以apk为后缀名,其实apk是Android Package的缩写,即android安装包. 注:apk包文件其实就是标准的zip文件,可以直接用解压缩软件解开.Apk包中的内容 解压缩一个apk文件后,目录结构一般如下: *.apk ├-res │ ├+layout │ └+drawable ├-META-INF │ ├-MANIFEST.MF │ ├-CERT.SF │ └-CERT.RSA ├-resources.arsc ├-cla

C语言的编译过程、安装gcc编译器以及设置环境变量

以我对C语言编译过程的了解,我用了一点时间画了一个图,提供给大家参考一下,希望有些能对您的问题提上帮助. 前几天刚初步学习了C语言的编译过程,感触挺深的.在C语言中头文件其实起了一个很大的作用. 1.头文件可以不需要编译 2.可以查看具体的声明 3.头文件加上实现文件的o文件提交给使用者即可 ,不需要知道源代码 4..o文件预先编译,所以整个项目编译时,会大大提高编译的时间 . 5.当一个文件(A.c文件)依赖于头文件(b.h)时 ,如果b.c编译之后形成的b.o文件重新编译后,a.o的文件不需