解决方案

eXosip入门(三):eXosip库的验证

seo靠我 2023-09-24 23:21:43

      本次我们来验证一下得到的eXosip库是否可用。

      PS:为什么要验证呢?不是编译成库后就可以直接使用么?理论上是这样的,但是现实是残酷滴,编译成库文件,只是噩梦的开始,学习的道路不会一帆风顺。

本次只是验SEO靠我证eXosip库是否可用,不需要很复杂的代码,测试代码如下:

// test.cpp

#include "stdafx.h" #include <eXosip2/eXosip.h>SEO靠我

#include <stdio.h> #include <stdlib.h> #include <Winsock2.h>

int _tmain(int aSEO靠我rgc, _TCHAR* argv[]) {int i;

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

if (i != 0)return -1;SEO靠我

return 0; }

    操作步骤如下:

    1、在VS2008里创建win32控制台程序工程;

    2、将上面的代码保存成test.cpp并加入工程中;

3、将libosip源码包的incluSEO靠我de目录下的osip2、osipparser2两个文件夹及osip2.dll、osipparser2.dll、osip2.lib、osip2.lib、osipparser2.lib拷到工程内,并在工程SEO靠我设置里面设置好包含路径;

    4、需要在工程属性——》链接器——》附加依赖项,增加以下库文件:

           eXosip.lib

           osip2.lib

           osipparser2.lib

           Iphlpapi.lib

Dnsapi.libSEO靠我

           ws2_32.lib;

    5、然后点击编译,你会惊奇的发现竟然会出现那么多的编译错误!Oh!My GOD!噩梦开始了!!

    大致的编译错误如下:

1>eXosip.lib(eXosip.obj) : errorSEO靠我 LNK2019: 无法解析的外部符号 _osip_transaction_set_naptr_record,该符号在函数 __eXosip_transaction_init 中被引用 SEO靠我 1>eXosip.lib(eXtl_tcp.obj) : error LNK2019: 无法解析的外部符号 _osip_realloc,该符号在函数 __tcp_tl_recv 中被引用 SEO靠我 1>eXosip.lib(eXutils.obj) : error LNK2001: 无法解析的外部符号 _osip_realloc 1>eXosip.lib(eXtl_tcp.SEO靠我obj) : error LNK2019: 无法解析的外部符号 _osip_strcasestr,该符号在函数 _handle_messages 中被引用 1>eXosip.lib(jSEO靠我request.obj) : error LNK2019: 无法解析的外部符号 ___osip_uri_escape_userinfo,该符号在函数 __eXosip_dialog_add_contaSEO靠我ct 中被引用 1>eXosip.lib(jresponse.obj) : error LNK2001: 无法解析的外部符号 ___osip_uri_escape_userinfo SEO靠我 1>C:\Users\Cheney\Desktop\SIP\eXosipTest\Debug\eXosipTest.exe : fatal error LNK1120: 4 个无法解析的SEO靠我外部命令

产生这些错误是因为需要用到的一些函数在osip库在def文件中没导出。需要修改\libosip2-3.6.0\platform\vsnet目录下面的osip2.def、osipparser2.SEO靠我def两个文件,在文件的末尾导出这些函数,具体如下:

osip2.def:

    osip_transaction_set_naptr_record  @138

osipparser2.def:

osip_realSEO靠我loc @416

    osip_strcasestr @417

    __osip_uri_escape_userinfo @418

修改完毕后,重新编译整个解决方案,得到新的dll及lib,更新到eXosip测试工SEO靠我程里面,上述的编译错误即可解决。剩下的事情就是编译调试了。

题外话:其实这些错误对于作者来说可能只是一时疏忽,忘记引出几个函数而已,但是对于初学者及新手来说往往造成巨大的麻烦,或者打击学习信心。本人记得SEO靠我就仅仅为了处理上面的错误,就耗费了一个上午的时间,查阅了大量的网页资料,才找到解决办法。

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2