gitlab windows安装_【Thrift】Windows编译Thrift源码及其依赖库

eb1141bf9145b43640d83318403be187.png

背景

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)进行添加
perl 
  • 编译&安装:
nmake
nmake install

Boost(版本:1.71.0)

  • 这个库是最大的,但是是最成熟的,这里编译的x64版本,基本没有遇到什么问题
  • 需要注意的就是1.71.0的bjam由b2代替,完整命令如下:
"D:Boost" link=static runtime-link=shared runtime-link=static threading=multi debug release

Libevent(版本:2.1.11)

  • 编译时候会报错:需要根据错误提示进行修改,这里的UINT32_MAX未定义的问题
    • 需要到对应的文件添加:#include <stdint.h>
  • 编译: nmake /f Makefile.nmake
  • 由于windows下要区分MT,MD,MTd,MDd的原因所以还是用cmake生成VS项目产生对应的库
    • 第一个问题:
CMake Error: File D:/libevent-2.1.11-stable/cmake/Uninstall.cmake.in does not exist.
CMake Error at CMakeLists.txt:1498 (configure_file):
configure_file Problem configuring file
  • 到对应的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/下面自己创建文件,并添加如下几行:
#include 
  • 最诡异的错误:找不到openssl/ssl.h
    • thrift.sln中有两个项目,其中thriftnb是non-block的意思本来是不依赖openssl的,但是VS下就是会报这个错误,所以需要修改libthriftnb.vcxproj,把OPENSSL_ROOT_DIRinclude放到IncludePath里面
    • 注:我这里直接在VS里面改是不行的,生成的时候会被覆盖,修改如下(在libthriftnb.vcxproj的152~176行):
<PropertyGroup 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值