gitlab 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)进行添加
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
gitlab windows安装_【Thrift】Windows编译Thrift源码及其依赖库相关推荐
- freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库
背景 Windows下thrift的编译还挺麻烦的,故在此记录编译thrift的时候的一些坑(2019-11-13) 第三方库(boost.libevent.openssl) 问题一:vcpkg巨慢, ...
- boost安装_【环境搭建】源码安装Boost
写C++的话boost是必不可少的,本文将boost的安装过程用写成脚本,直接一行命令解决整个编译安装过程: sudo bash boost-linux-installer.sh 下面是`boost- ...
- windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
- python编译器源码_编译python源码
广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 尝试通过源码自己编译 python,使用的系统是 ubuntu14.04 l ...
- vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
- ubuntu16.04编译android6_r1源码绕坑贴
1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历.先上图,Ubuntu上编译完后成功运行模拟 ...
- Java扩展Nginx之二:编译nginx-clojure源码
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 为什么要编译nginx-clojure源码 作为< ...
- 【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 )
文章目录 一.导入 Oboe 库 二.使用预构建的二进制库和头文件 三.编译 Oboe 源代码 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Starte ...
- 在Windows和Linux上编译gRPC源码操作步骤(C++)
gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程. Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git.CMak ...
最新文章
- Keras 最新《面向小数据集构建图像分类模型》
- 分页功能 (包含增删改查)工具类
- 最小二乘法,python3实现
- Snchronize对象锁同步
- Angular单元测试的一个错误消息
- SQL中binary 和 varbinary的区别
- ubuntu c++检测usb口事件变化_炼就“火眼金睛”,FETA40i-C核心板“牵手”光时域反射仪...
- 关于“数据中心”的最强入门科普
- python字符串结合操作符的使用
- php 实现数组数据查询,thinkphp数据查询和遍历数组实例_PHP
- SQL Server 2005 Express数据库为“只读”
- Percona XtraBackup 安装介绍篇
- ipad写python代码用什么软件_iPad 能用来写代码吗?有哪些必备软件推荐?
- ABAQUS2017帮助文档查看_51CAE_新浪博客
- SSM 实现学生成绩管理系统(完整代码)
- java栈中存放_java栈存放什么?java堆存放什么?
- ubuntu16.04编译obmc
- Eureka(02-入门)Eureka是什么
- 2018版ISTQB FL基础级大纲全解析
- 前端学习之CSS第三天
热门文章
- 怎么才能升级成鸿蒙系统,怎么能升级成鸿蒙系统
- java restful项目打包_66-JT项目04(项目打包发布/JSON/项目业务)
- Excel的导入与导出
- python相机拍照显示_从solvePnP获取摄影机姿势
- MySQL导出的文件权限_mysql导出数据到文件权限问题
- 树莓派linux系统识别u盘启动,使用U-Boot让树莓派从U盘启动
- redis 从节点如何选举从节点升级为主节点_Redis哨兵的配置和原理
- 微型计算机中的数据总线用来,微型计算机技术及应用(戴梅萼4)练习题答案.doc...
- android判断是否已经安装成功,android 判断应用程序是否已安装
- ovirt 双机_ovirt kvm嵌套虚拟化