在arm-linux编译osip-exosip2(LHL).docx_第1页
在arm-linux编译osip-exosip2(LHL).docx_第2页
在arm-linux编译osip-exosip2(LHL).docx_第3页
在arm-linux编译osip-exosip2(LHL).docx_第4页
在arm-linux编译osip-exosip2(LHL).docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在arm-linux编译osip,exosip21 osip,exosip2简介Osip2是一个开放源代码的sip协议栈,是使用C语言写的协议栈,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。但缺点也很明显,首先就是可用性差,没有很好的api封装,使得上层应用在调用协议栈时很破碎;其次,只做到了事务(transaction)层次的协议过程解析,缺少呼叫(call)、会议(session)、对话(dialog)等过程的解析,这也增加了使用的难度;再次,缺少线程并发处理的机制,使得它的处理能力有限。 eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。eXosip增加了call、dialog、registration、subscription等过程的解析,使得实用性更强。但是eXosip局限于UA的实现,使得它用于registrar、sip server等应用时极其不容易。另外,它并没有增加线程并发处理的机制。2 下载: a) /gnu/osip/ b) /releases/exosip/ 3 配置编译环境交叉编译环境库路径拷贝到“/home/lhluser/tools/arm-bcm2708”,运行下面命令,配置环境变量。复制下面语句到命令行#export CC=/home/lhluser/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-gcc4 编译osip2a) 将libosip2-3.6.0.tar.gz解压到“/home/lhluser/LHL/libosip2-3.6.0”b) #cd /home/lhluser/LHL/libosip2-3.6.0c) #mkdir osiparmlib 建立工作路径d) #cd osiparmlib 进入工作路径e) #chmod +x ./configure 修改文件为可执行查看configure配置文件:$././configure -help osip2_configure_help.txtf) #././configure -prefix=/home/lhluser/LHL/armlib -target=arm-linux -host=arm-linux -enable-static=yes -enable-shared=nog) #makeh) #make install完成后,生成的libosip2.so.7.2.0、libosip2.a、libosipparser2.so.7.2.0和libosipparser2.a库文件在“/home/lhluser/LHL/armlib/lib”目录下,include文件在“/home/lhluser/LHL/armlib/include”下5 编译eXosipa) 将libeXosip2-3.6.0.tar.gz解压到“/home/lhluser/LHL/libeXosip2-3.6.0b) #cd /home/lhluser/LHL/libeXosip2-3.6.0c) #cp ./armlib/lib/* /usr/lib/d) #cp -r ./libosip2-3.6.0/osiparmlib/include/osipparser2 ./libeXosip2-3.6.0/include/osipparser2e) #cp -r ./libosip2-3.6.0/osiparmlib/include/osip2 ./libeXosip2-3.6.0/include/osip2f) #mkdir eXosiparmlib 建立工作路径g) #cd eXosiparmlib 进入工作路径h) #chmod +x ./configure 修改文件为可执行查看configure配置文件:$././configure -help eXosip2_configure_help.txti) #././configure -prefix=/home/lhluser/LHL/armlib -target=arm-linux -host=arm-linux -enable-static=yes -enable-shared=noj) #make cleank) #makel) #make install完成后,configure文件中指示生成路径为“/home/lhluser/LHL/armlib”,生成的libeXosip2.so.7.2.0和libeXosip2.a库文件在“/home/lhluser/LHL/armlib/lib”目录下,include文件在“/home/lhluser/LHL/armlib /include”下6 验证示例程序: 6.1 创建qt工程“文件”“新建文件或项目”“QT Gui 应用”名称:eXosip2_init创建路径:/home/lhluser/LHL/eXosip2_init使用构建套件:ARM_Kit进入“项目”“构建和运行”“构建设置”将“Release”和“Debug”中的影子工程(Shadow build)去掉6.2 复制编译好的库和头文件到该工程路径下$ cp -r /usr/local/include /home/lhluser/LHL/eXosip2_init/eXosip2_init/include$ cp -r /usr/local/lib /home/lhluser/LHL/eXosip2_init/eXosip2_init/lib建立调用库路径()和头文件路径()6.3 添加代码修改工程文件“eXosip2_”,添加头部和库路径说明如下:INCLUDEPATH += ./includeINCLUDEPATH += ./include/eXosip2INCLUDEPATH += ./include/osip2INCLUDEPATH += ./include/osipparser2INCLUDEPATH += .l/include/osipparser2/headersQMAKE_LIBDIR += ./libLIBS += -losip2LIBS += -losipparser2LIBS += -leXosip2在文件“main.cpp”的头部添加头部说明extern C#include 在文件”main.cpp”的“int main(int argc, char *argv)”中添加如下代码,用于测试编译库是否正确。 int i; i=eXosip_init(); if (i!=0) printf(Couldnt init eXosip!n); return -1; else printf(init eXosip successfully.n); 6.4 编译生成应用程序点击工程名“eXosip2_init” 右键,选择“重新构建”,生成的可执行程序“eXosip2_init”在“/home/lhluser/LHL/eXosip2_init/eXosip2_init/”路径下。6.5 运行程序6.5.1 连接到运行机器$ssh pi78 连接到运行机器6.5.2 复制运行文件和库打开文件管理器(Dolphin),按“Ctrl+l”在文件夹地址栏中输入:s78/ 用户名:pi 密码:pi61270526将可执行程序“eXosip2_init” 复制到运行机器的路径下(/home/pi/_ftp_file_pub/demo/test)和所有生成的库文件“libosip2.so.7.2.0”、“libosipparser2.so.7.2.0”、“libeXosip2.so.7.2.0”复制到运行机器的路径下(/home/pi/_ftp_file_pub/demo/test/lib)6.5.3 建立库的连接 检查可执行程序的依赖关系$ldd eXosip2_init 列表错误如下:/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6fb2000)libosip2.so.7 = not foundlibosipparser2.so.7 = not foundlibeXosip2.so.7 = not foundlibQtGui.so.4 = /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0xb66e3000)libQtNetwork.so.4 = /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0xb6600000)libQtCore.so.4 = /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0xb6313000)libpthread.so.0 = /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb62f4000)libstdc+.so.6 = /usr/lib/arm-linux-gnueabihf/libstdc+.so.6 (0xb6227000)libm.so.6 = /lib/arm-linux-gnueabihf/libm.so.6 (0xb61b6000)libgcc_s.so.1 = /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb618e000)libc.so.6 = /lib/arm-linux-gnueabihf/libc.so.6 (0xb605f000)libdl.so.2 = /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6054000)librt.so.1 = /lib/arm-linux-gnueabihf/librt.so.1 (0xb6045000)/lib/ld-linux-armhf.so.3 (0xb6fbf000)系统默认检查数据库文件为“/usr/lib”6.6 建立连接a) $sudo ln -sf /home/pi/_ftp_files_pub/demo/test/lib/libosip2.so.7.2.0 /usr/lib/libosip2.so.7b) $sudo ln -sf /home/pi/_ftp_files_pub/demo/test/lib/libosipparser2.so.7.2.0 /usr/lib/libosipparser2.so.7c) $sudo ln -sf /home/pi/_ftp_files_pub/demo/test/lib/libeXosip2.so.7.2.0 /usr/lib/libeXosip2.so.76.7 查看生产的连接文件$sudo ls -l liba) lrwxrwxrwx 1 root root 56 May 30 08:29 /usr/lib/libosip2.so.7 - /home/pi/_ftp_files_pub/demo/test/lib/libosip2.so.7.2.0b) lrwxrwxrwx 1 root root 62 May 30 08:29 /usr/lib/libosipparser2.so.7 - /home/pi/_ftp_files_pub/demo/test/lib/libosipparser2.so.7.2.0c) lrwxrwxrwx 1 root root 58 May 30 08:30 /usr/lib/libeXosip2.so.7 - /home/pi/_ftp_files_pub/demo/test/lib/libeXosip2.so.7.2.0 再次检查/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6f02000)libosip2.so.7 = /usr/lib/libosip2.so.7 (0xb6ed9000)libosipparser2.so.7 = /usr/lib/libosipparser2.so.7 (0xb6e9f000)libeXosip2.so.7 = /usr/lib/libeXosip2.so.7 (0xb6e3f000)libQtGui.so.4 = /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0xb657d000)libQtNetwork.so.4 = /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0xb649a000)libQtCore.so.4 = /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0xb61ad000)libpthread.so.0 = /lib/arm-lin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论