VS2013下编译libeXosip2

来源:互联网 发布:java类依赖 编辑:程序博客网 时间:2024/05/29 02:05

1.下载需要库的源文件

  • 从http://www.antisip.com/download/exosip2/ 页面下下载libeXosip2 和libosip2这两个压缩文件。(我下载的libexosip2-5.0.0.tar.gz中有缺失一个eXrefer_api.c文件的问题)

下载

  • 从连接https://c-ares.haxx.se/处下载c-ares
  • 全部下载解压统一放到一个文件夹下,然后修改文件夹的名字,
    libexosip2-xxx 修改为exosip
    libosip2-xxx 修改为osip
    c-ares-xxx 修改为c-ares

2. 进入exosip文件夹下的目录:.\platform\vsnet 。 打开eXosip.sln后会加载相关项目

项目结构图

如果出现osip2,osipparser2项目不能加载进来,请查看vsnet下的eXosip.vcxproj文件中相应项目的文件夹位置是否和这里的对应。这也是为什么上面第一步中把那些解压后的都放在一个文件夹下。

这里写图片描述

libcares.vcxproj下加入三个文件ares_platform.h,ares_platform.c,ares_create_query.c选项,否则在调用生成库时会出现

error LNK2019:无法解析的外部符号_ares_getplatform,该符号在函数_get_DNS_Registry中被引用。
error LNK2019:无法解析的外部符号_ares_create_query,该符号在函数_ares_query中被引用。


3. 去掉一些预定义(HAVE_OPENSSL_SSL_H,TSL_SUPPORT),不然在编译的时候出现

error C1083: 无法打开包括文件: “openssl/opensslv.h”: No such file or directory
IntelliSense: 无法打开 源 文件 “tsc_socket_api.h”
IntelliSense: 未定义标识符 “tsc_config”

这里写图片描述

在编译 libexosip2-5.0.0.tar.gz 这个版本时出现一个缺失文件的问题,后来发现时这个版本中就是缺失了“eXrefer_api.c”这个文件,而在其配置文件中添加了这个文件,导致找不到这个文件。后来在前面的版本中找到了这个文件加进去后就没问题了。


4.对eXosip进行编译。成功编译!


在项目中使用


5.项目中添加哪些库文件

Dnsapi.lib;Iphlpapi.lib;ws2_32.lib;eXosip.lib;osip2.lib;osipparser2.lib;Qwave.lib;libcares.lib;delayimp.lib;

不然可能有各种连接错误!

缺少delayimp.lib会出现

error LNK2001: 无法解析的外部符号 ___HrLoadAllImportsForDll

参考文章

VS2013编译eXosip2-4.1.0

0 0
原创粉丝点击