Exosip在window下的编译

系统配置: windows,vs2010

windows下编译方法:

版本:libeXosip2-4.1.0,官方下载地址:http://download.savannah.gnu.org/releases/exosip/

1.下载libeXosip2-4.1.0.tar.gz

   1.1 打开libeXosip2-4.1.0\libeXosip2-4.1.0\platform\vsnet,eXosip.sln要用vs2012才能打开,由于用的是vs2010,所以我们用vs2010打开eXosip.vcxproj.编译

   1.2 编译用出现以下错误:

        错误1:

        C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): 
        error MSB8008: 指定的平台工具集(v100)未安装或无效。请确保选择受支持的 PlatformToolset 值。
        解决方法:右键点击所建立的项目,选择属性,再点击配置属性中的常规,常规中有个平台工作集,把V110改成V100,点击应用即可。

        

        错误2:

        1>  eXcall_api.c
        1>c1 : fatal error C1083: 无法打开源文件:“..\..\..\exosip\src\eXcall_api.c”: No such file or directory
        1>  eXconf.c
        1>c1 : fatal error C1083: 无法打开源文件:“..\..\..\exosip\src\eXconf.c”: No such file or directory

        解决方法:关闭vs2010,将libeXosip2-4.1.0改为exosip


        错误3:

        fatal error C1083: 无法打开包括文件:“osip2/osip.h”: No such file or directory

        解决方法:下载libosip2-4.1.0.tar.gz源码,下载地址:http://ftp.gnu.org/gnu/osip/

        解压libosip2-4.1.0.tar.gz,将libosip2-4.1.0改名为osip,拷贝到libeXosip2-4.1.0目录下,在编译

        

        错误4:

        1>f:\测试demo\exosip\libexosip2-4.1.0\exosip\src\eXtransport.h(44): fatal error C1083: 无法打开包括文

        件:“openssl/opensslv.h”: No such file or directory

        1>  eXconf.c
        1>f:\测试demo\exosip\libexosip2-4.1.0\exosip\src\eXtransport.h(44): fatal error C1083: 无法打开包括文

        件:“openssl/opensslv.h”: No such file or directory

        1>  eXinsubscription_api.c

        解决方法:右击eXosip选择属性->配置属性->c/c++->预处理器,删除 HAVE_OPENSSL_SSL_H 


        错误5:

        1>..\..\..\exosip\src\eXtl_udp.c(55): fatal error C1083: 无法打开包括文件:“tsc_socket_api.h”: No such file or directory
        1>  eXtransport.c
        1>  eXutils.c
        1>..\..\..\exosip\src\eXutils.c(93): fatal error C1083: 无法打开包括文件:“tsc_socket_api.h”: No such file or directory

        解决方法:右击eXosip选择属性->配置属性->c/c++->预处理器,删除 TSC_SUPPORT


        错误6:

        1>..\..\..\exosip\src\eXutils.c(959): fatal error C1083: 无法打开包括文件:“nameser.h”: No such file or directory

        解决方法:右击eXosip选择属性->配置属性->c/c++->预处理器,删除 SRV_RECORD


        错误7:

        1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): error MSB8008: 指定的平台工         具集(v110)未         安装或无效。请确保选择受支持的 PlatformToolset 值。
        1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): error MSB8008: 指定的平台工         具集(v110)未         安装或无效。请确保选择受支持的 PlatformToolset 值。
        1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): error MSB8008: 指定的平台工         具集(v110)未         安装或无效。请确保选择受支持的 PlatformToolset 值。

        用vs2010打开libeXosip2-4.1.0\exosip\platform\vsnet下的libcares.vcxproj,修改平台工作集为V100

        用vs2010打开libeXosip2-4.1.0\osip\platform\vsnet下的osip2.vcxproj,修改平台工作集为V100

        用vs2010打开libeXosip2-4.1.0\osip\platform\vsnet下的osipparser2.vcxproj,修改平台工作集为V100


2. 编译libosip2-4.1.0下的osip2,osipparser2库

   遇到问题和上面的差不多,可做相同的修改,基本上都是平台工作集改为V100。


3.编写个简单的Demo测试程序

1.将exosip下的头文件和osip下的头文件拷贝到一个文件下(include):



2.将exsip库和osip库拷贝到一个文件下(lib):



3.创建demo(如何在vs2010下创建项目就不讲了,自己看吧!记得在添加ws2_32.lib库)

代码如下:

#include <iostream>
#include "eXosip2/eXosip.h"
#include "osip2/osip_mt.h"
#include <winsock2.h>
using namespace std;
void* WorkThread(void *arg);
void main()
{
eXosip_t *lpeXosip=eXosip_malloc();
if(eXosip_init(lpeXosip)!= OSIP_SUCCESS)
return;
if(eXosip_listen_addr(lpeXosip,IPPROTO_UDP, "192.168.0.74", 5080, AF_INET, 0)!=OSIP_SUCCESS)
return;
osip_thread *lpThread=NULL;
lpThread=osip_thread_create(20000,&WorkThread,lpeXosip);
if(lpThread==NULL)
return;
cout<<"press any key,exit..."<<endl;
getchar();
if(OSIP_SUCCESS==osip_thread_join(lpThread))
return;
eXosip_quit(lpeXosip);
return;
}
void* WorkThread(void *arg)
{
eXosip_t *lpSipInstance=(eXosip_t*)arg;
if(lpSipInstance==NULL)
return NULL;
eXosip_event_t *lpEnvent = NULL;
for(;;)
{
lpEnvent = eXosip_event_wait(lpSipInstance,0,50); 
eXosip_default_action(lpSipInstance,lpEnvent);
if (lpEnvent == NULL)
continue;
switch (lpEnvent->type)
{
case EXOSIP_MESSAGE_NEW:
{
if(MSG_IS_REGISTER(lpEnvent->request))
{
eXosip_lock(lpSipInstance); 
osip_message_t *answer = NULL;
eXosip_message_build_answer (lpSipInstance,lpEnvent->tid, 200,&answer);
eXosip_message_send_answer (lpSipInstance,lpEnvent->tid, 200,answer);
eXosip_unlock(lpSipInstance);
}


if (MSG_IS_MESSAGE (lpEnvent->request))
eXosip_event_free(lpEnvent);
}
break;
case EXOSIP_REGISTRATION_SUCCESS:
break;
default:
break;
}
}
return NULL;
}





        





  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值