1. 程式人生 > >VS2013下編譯libeXosip2

VS2013下編譯libeXosip2

1.下載需要庫的原始檔

下載

  • 全部下載解壓統一放到一個資料夾下,然後修改資料夾的名字,
    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

參考文章