1. 程式人生 > >VS2015下編譯libeXosip2-5.0.0

VS2015下編譯libeXosip2-5.0.0

1) 下載原始碼解壓修改目錄名稱(版本為5.0.0)
http://www.antisip.com/download/exosip2/ 
https://c-ares.haxx.se/
解壓後修改為expsip osip c-ares,存放在同一個目錄下;
===========================================================================================================
2) 編譯(Windows)
進入exosip\platform\vsnet, 開啟eXosip.sln後會載入相關專案
注意事項:
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中被引用。

去掉一些預定義(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檔案告警,可以從舊版本複製一份,也可以選擇刪除它;
===========================================================================================================
3) vs2010 需要修改專案屬性的工具集為 v100


===========================================================================================================
4) 工程增加相應系統庫,避免連結錯誤
Dnsapi.lib;Iphlpapi.lib;ws2_32.lib;eXosip.lib;osip2.lib;osipparser2.lib;Qwave.lib;libcares.lib;delayimp.lib;
缺少delayimp.lib, Qwave.lib會出現 dns等報錯;
例如:
  error LNK2001: 無法解析的外部符號 ___HrLoadAllImportsForDll
===========================================================================================================
5) Linux下則參考 ./configure --help就按步驟完成;