Windows MinWG 编译 thrift
1.必备:
1. Dev C++
2. boost 1.53.0 (我下的 1.69.0 也可以过编译)
3. Flex & Bison
下载地址:
https://sourceforge.net/projects/winflexbison/files/latest/download
https://jaist.dl.sourceforge.net/project/winflexbison/win_flex_bison-latest.zip
4. 源代码
5.libevent (编译64位)
thrift 的 cmake 配置:
6.OpenSSL (编译64位)
thrift的 cmake 配置:
郑重声明: 编译64位的thrift 需要编译64位的 libevent 和 OpenSSL !
2.配置Cmake:
1.设置源码、生成目录的路径。
2.设置变量路径:
Boost_INCLUDE_DIR boost 引用目录
BISON_EXECUTABLE bison 程序路径
FLEX_EXECUTABLE flex 程序路径
CMAKE_CXX_COMPILER g++ 程序路径
CMAKE_MAKE_PROGRAM mingw32-make 程序路径
BUILD_TUTORIALS 这个构去掉, 这是编译 教程 。
CMAKE_INSTALL_PREFIX 库的安装路径
CMAKE_BUILD_TYPE 设置为Release
With_LibEvent 开启
With_OpenSSL 开启
Shared_lib 开启,生成 dll,否则不生成DLL哦。
3.编译:
cmd 进入到生成目录; 添加 make 程序的路径到PATH环境变量:
SET PATH=%PATH%;C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\
开始编译并安装:
mingw32-make -j4 install
4.遇到的问题&解决:
1.
C:\Users\myuser\Downloads\thrift-master\lib\cpp\src\thrift\transport\THttpServer.cpp: In member function 'std::string apache::thrift::transport::THttpServer::getTimeRFC1123()':
C:\Users\myuser\Downloads\thrift-master\lib\cpp\src\thrift\transport\THttpServer.cpp:43:66: error: 'gmtime_s' was not declared in this scope
#define THRIFT_GMTIME(TM, TIME) gmtime_s(&TM, &TIME)
和编译 ollvm 遇到相同问题, 直接注释掉。
(为了避免未来出错,不要注释代码。) 加入 头文件 time.h 可以解决。
2.
C:\Users\myuser\Downloads\thrift-master\lib\cpp\src\thrift\transport\TFileTransport.cpp: In member function 'void apache::thrift::transport::TFileTransport::writerThread()':
C:\Users\myuser\Downloads\thrift-master\lib\cpp\src\thrift\transport\TFileTransport.cpp:324:45: error: '_chsize_s' was not declared in this scope
if (0 == THRIFT_FTRUNCATE(fd_, offset_)) {
^
搜索源码发现:
thrift-master\lib\cpp\src\thrift\transport\PlatformSocket.h
# define THRIFT_FTRUNCATE _chsize_s
添加 io.h 文件的引用:
C:\Users\myuser\Downloads\thrift-master\lib\cpp\src\thrift\transport\PlatformSocket.h
#ifndef _THRIFT_TRANSPORT_PLATFORM_SOCKET_H_
# define _THRIFT_TRANSPORT_PLATFORM_SOCKET_H_
#define _WIN32 1
#ifdef _WIN32
# include <winsock2.h>
# include <io.h>
同时,\thrift-master\lib\cpp\src\thrift\transport\TFileTransport.cpp
文件需要添加 PlatformSocket.h 文件的引用 。
搜索 _chsize_s 的 msdn,发现引用IO.h ,但事实上没有这个函数。
这个是 secured 的函数, 换成 _chsize ,坑的一B。
# define THRIFT_FTRUNCATE _chsize
附录:
我编译好的 Win64 位带有 Non blocking 的 thrift库(内含thrift编译器exe、dll、a文件):
链接:https://pan.baidu.com/s/1acHysRZ1v0CJYy8BcaJsGQ
提取码:1lev
太菜了,编译这些开源项目花了好几天……
Windows MinWG 编译 thrift相关推荐
- freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库
背景 Windows下thrift的编译还挺麻烦的,故在此记录编译thrift的时候的一些坑(2019-11-13) 第三方库(boost.libevent.openssl) 问题一:vcpkg巨慢, ...
- gitlab windows安装_【Thrift】Windows编译Thrift源码及其依赖库
背景 Windows下thrift的编译还挺麻烦的,故在此记录编译thrift的时候的一些坑(2019-11-13) 第三方库(boost.libevent.openssl) 问题一:vcpkg巨慢, ...
- Windows下编译Chrome V8
主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...
- windows下编译leveldb
前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...
- Windows下编译 Hadoop
Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...
- Windows下编译tensorflow-gpu教程
这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...
- Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序
参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...
- 如何在Windows下编译OpenSSL?
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- windows下编译支持https的curl
先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...
最新文章
- 使用 netfilter 处理IPv6报文
- Python之旅:列表
- 用chkconfig配置linux自启动服务
- Samba平台搭建和用户自行修改密码环境搭建笔记
- 如何还原桌面图标_如何为Windows 10桌面图标还原或更改文本的默认外观?
- Java Stream:计数始终是计数吗?
- 联想一体机电源键不亮_联想电脑一体机B505拆机经验
- Spring Cloud Alibaba迁移指南(四):零代码兼容 Api-Gateway 1
- 为何@Autowired注解无法实现第三方类的注入?
- linux7inittab文件不存在,Linux下修复inittab文件丢失的两种方法
- MATLAB 对 提取出的流线 添加颜色
- HDU2006 求奇数的乘积【入门】
- Echarts的使用方法
- ie内核出现问题的解决方法
- JavaSE学习总结——Java基础
- 人生有三重境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水(转载)
- 十万,百万,千万,快狗打车架构是怎么演进的?
- 浅谈用python连接 功率分析仪(Power Analyzer) 和 数位万用表(Digital Multimeter)
- 参考文献格式自动生成器
- LT01 创建转储单