当前位置: 首页 > GNU/Linux系统 > 正文

openssl、libosip2、libeXosip2三个库的编译过程

有同事最近要使用到sip的东东,需要使用到openssl、libosip2、libeXosip2这三个库,具体干嘛的我还不清楚,最近事多,头脑不太清醒,也不想记那些跟自己没关系的事。

不过山人自认为对开源库的交叉编译还是很在行的,也没把这个放在以上,以为不难,结果还是花了一点时间去完成。从上网找资料到真正完成编译,大约花了2个多小时吧,其间断断续续干了些其它事,还包括下班回来继续做的时间。

其中主要是对交叉编译的选项不理解而导致花那么多时间的。下面记录一下自己编译的步骤以备忘。下文没有写解压各个库的过程,因为这个步骤十分简单,不用写出来了。最主要是下面各项的编译参数的设置。

一、编译openssl-0.9.8e:

1、

./Configure linux-elf-arm -DB_ENDIAN linux:’arm_v5t_le-gcc’ –prefix=/home/latelee/bin/sip_new/ssl

(注1:在该平台上不支持动态库,如果添加shared选项,会在Configure后面提示的。)

(注2:–prefix是指定openssl的静态库及头文件目录,后面编译其它库时要用到)

2、

make

3、

make install

(因为要安装手册,所以install这步要花点时间,在configure没找到不安装手册的选项)

二、编译libosip2-3.6.0

1、

./configure –prefix=/home/latelee/bin/sip_new/libosip2 CC=arm_v5t_le-gcc –host=arm-linux -enable-static

2、

make ;

3、

make install

三、编译libosip2-3.6.0

1、

./configure –prefix=/home/latelee/bin/sip_new/libeXosip2 CC=arm_v5t_le-gcc –host=arm-linux –disable-tools –disable-debug –disable-trace –enable-openssl –enable-static CFLAGS=’-I/home/latelee/bin/sip_new/libosip2/include -I/home/latelee/bin/sip_new/ssl/include’
LDFLAGS=’-L/home/latelee/bin/sip_new/libosip2/lib -L/home/latelee/bin/sip_new/ssl/lib/’ LIBS=’-lssl -lcrypto’

2、

make

出现编译错误:

eXtl_udp.c:181: 错误: `retval’ undeclared (first use in this function)

==>解决:

找到该文件,将retval改为res

3、make install

示例代码:

#include <sys/types.h>/* See NOTES */

#include <sys/socket.h>

#include <netinet/in.h>

#include <eXosip2/eXosip.h>

int main(void)

{

int i;

i = eXosip_init(); // 初始化eXosip和osip协议栈

if (i != 0)

return -1;

i = eXosip_listen_addr (IPPROTO_UDP, NULL, 5060, AF_INET,0);
// 打开信号socket

if (i != 0)// 传输层初始化失败

{

eXosip_quit();

return -1;

}

return 0;

}

编译命令:

#arm_v5t_le-gcc test.c -I/home/latelee/bin/sip_new/libeXosip2/include -I/home/latelee/bin/sip_new/libosip2/include -L/home/latelee/bin/sip_new/libeXosip2/lib/ -L/home/latelee/bin/sip_new/libosip2/lib -leXosip2 -losip2 -losipparser2

 

山人记于即日凌晨

注:本文最初发表在CSDN博客,    

本文固定链接: http://www.latelee.org/using-gnu-linux/compile-ssl-sip-linux.html

目前暂无评论

发表评论

*

快捷键:Ctrl+Enter