freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库
生活随笔
收集整理的這篇文章主要介紹了
freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景
Windows下thrift的編譯還挺麻煩的,故在此記錄編譯thrift的時候的一些坑(2019-11-13)
第三方庫(boost、libevent、openssl)
- 問題一:vcpkg巨慢,還不一定能下載自己直接編譯
- 問題二:直接下載exe沒有include目錄,還是不行
OpenSSL(版本:1.1.1d)
- 推薦直接使用Windows安裝包安裝:OpenSSL官方下載 - 碼客
- 源碼安裝:example: Windows 下編譯 OpenSSL
- 很多地方會選擇no-asm的模式,目前的經驗來看,直接安裝nasm然后,不要no-asm是最靠譜的opessl是最基本的庫,需要先安裝perl,然后配置
- 下載并安裝NASM:Index of /pub/nasm/releasebuilds/2.15.04/win64
- 安裝的時候記得看路徑,需要手動把路徑添加到PATH
- 下載并安裝PERL:Download Perl for development use: ActivePerl | ActiveState
- 如果發現perl缺少模塊的話,可以參考(ppm doesn't work after installing ActiveState Perl)進行添加
- 編譯&安裝:
Boost(版本:1.71.0)
- 這個庫是最大的,但是是最成熟的,這里編譯的x64版本,基本沒有遇到什么問題
- 需要注意的就是1.71.0的bjam由b2代替,完整命令如下:
Libevent(版本:2.1.11)
- 編譯時候會報錯:需要根據錯誤提示進行修改,這里的UINT32_MAX未定義的問題
- 需要到對應的文件添加:#include <stdint.h>
- 編譯: nmake /f Makefile.nmake
- 由于windows下要區分MT,MD,MTd,MDd的原因所以還是用cmake生成VS項目產生對應的庫
- 第一個問題:
- 到對應的CMakeLists.txt:1498會發現一個地址:https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake, 將這里的代碼復制下來并保存成D:/libevent-2.1.11-stable/cmake/Uninstall.cmake.in即可
Thrift (版本:0.12.0)
- 截至到2019-11-13,thrift-0.13.0其實已經發布,但是windows下的版本有比較多的問題,所以使用的0.12.0版本
- 下載源碼之后需到thrift-0.12.0/lib/cpp先找到3rdparty.props文件,修改BOOST_ROOT、LIBEVENT_ROOT、OPENSSL_ROOT_DIR分別指向對應的路徑
- 找不到envent2/event-config.h的問題需要把libevent的WIN32-Core下面的nmake/event2/event-config.h拷貝到include/event2
- 找不到thrift/config.h的問題,需要在src/thrift/下面自己創建文件,并添加如下幾行:
- 最詭異的錯誤:找不到openssl/ssl.h
- thrift.sln中有兩個項目,其中thriftnb是non-block的意思本來是不依賴openssl的,但是VS下就是會報這個錯誤,所以需要修改libthriftnb.vcxproj,把OPENSSL_ROOT_DIRinclude放到IncludePath里面
- 注:我這里直接在VS里面改是不行的,生成的時候會被覆蓋,修改如下(在libthriftnb.vcxproj的152~176行):
總結
以上是生活随笔為你收集整理的freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL从服务器写入报错吗_MySQL
- 下一篇: 钓鱼王者游戏怎么玩 钓鱼王者游戏玩法介绍