VS2013下編譯libeXosip2
1.下載需要庫的原始檔
- 從http://www.antisip.com/download/exosip2/ 頁面下下載libeXosip2 和libosip2這兩個壓縮檔案。(我下載的libexosip2-5.0.0.tar.gz中有缺失一個eXrefer_api.c檔案的問題)
- 全部下載解壓統一放到一個資料夾下,然後修改資料夾的名字,
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