1 前言
在开发GB/T 28181信令服务或网关时,要使用SIP协议栈。其中一种熟悉的开源库就是exosip+osip了。在windows环境中编译eXosip2和osip2比较简便;在linux中,默认方式下编译这2个库,也比较方便。如果要指定库的安装目录,那么就不能只简单的make & make install了。下边我们一起来看一下在Centos7.9环境中,指定安装目录编译eXosip2和osip2库的过程。
2 准备工作
Index of /download/exosip2/
官网提供的是最新版本,如果是之前的版本,编译方法类似。
解压安装包
tar -xzf libosip2-5.3.0.tar.gz
tar -xzf libexosip2-5.3.0.tar.gz
3 编译安装
3.1 编译osip2
因为exosip库依赖与osip库,所以先编译libosip2库。进入解压目录,并查看目录下的文件列表,里边有编译配置文件configure
cd libosip2-5.3.0/
如果是默认编译,那么直接执行下边命令即可,编译后将会安装在/usr/local/lib目录下。
./configure
现在我们指定编译后的库文件安装在目录/usr/local/3rd/中,那么执行下边命令:
./configure --prefix=/usr/local/3rd/osip2-5.3.0
配置好编译环境后,执行编译和安装命令:
make & make install
下边是安装好库的控制台截图:
安装完成后,在/usr/local/3rd目录中,便可以看到osip2-5.3.0的安装包:
里边主要包括库和头文件
库文件如下截图
3.2 编译libexosip2
接着编译libexosip2库,进入编译目录,并查看文件列表,同样的有configure。
cd ../libexosip2-5.3.0/
同样,我们指定编译后的库文件安装在目录/usr/local/3rd/,但是exosip2库依赖于osip2,所以要指定osip2的头文件和库包含路径、库名字,具体命令如下:
./configure --prefix=/usr/local/3rd/exosip2-5.3.0 OSIP_CFLAGS=-I/usr/local/3rd/osip2-5.3.0/include OSIP_LIBS="-L/usr/local/3rd/osip2-5.3.0/lib -losip2 -losipparser2"
配置好编译环境后,编译和安装:
make & make install
下边是安装好库的控制台截图
安装完成后,在/usr/local/3rd目录中,可以看到多了exosip2-5.3.0的安装包。
里边主要包括头文件和库文件:
库文件如下截图:
4 使用
至此,我们在linux系统中成功编译了osip2-5.3.0和exosip2-5.3.0。在项目中使用这两个库时,可以直接使用该目录下生成的头文件和库文件,也可以将其拷贝到项目第三方目录下,怎么方便怎么来。