跳转到帖子
登录关注  
墨香年少

thrift库编译安装

已推荐帖子

1-解压缩thrift库,假设解压缩到D:\workfile\thrift-0.13.0下
2-将D:\workfile\thrift-0.13.0\config.h文件拷贝到D:\workfile\thrift-0.13.0\lib\cpp\src\thrift目录下,防止编译的时候找不到config.h的错误
3-修改拷贝过去的config.h文件,将所有HAVE开头的宏都注释掉;
4-使用VS编译器打开D:\workfile\thrift-0.13.0\lib\cpp\thrift.sln解决方案文件
5-打开后可以看到libthrift和libthriftnb两个工程,将这两个工程分别配置
属性->C/C++->常规->附加包含目录:添加D:/workfile/boost_1_75和libevent的include目录以及openssl的include目录
属性->库管理器->常规->附加库目录:添加boost编译生成的lib目录,libevent编译生成的lib目录以及openssl的lib目录
6-从工程中移除报错的文件,这些文件是以前版本残留的文件,实际不存在,具体在concurrency下的BoostMonitor.h,BoostMonitor.cpp,Util.cpp等文件,实际文件以编译器报错为准
7-将D:\workfile\thrift-0.13.0\lib\cpp\src\thrift\concurrency目录中的所有的.h和.cpp文件都添加到工程中(因为默认的工程中缺少一些文件)
8-从工程中打开transport/TSSLSocket.h
9-在打开文件中,搜索THRIFT_EXPORT static bool manualOpenSSLInitialization_;删除这句代码中的THRIFT_EXPORT
10-属性->C/C++->预处理器:添加thrift_EXPORTS;预处理
11-编译debug和release
3.1.4.2.使用说明
1-项目工程目录包含boost,libevent,openssl,thrift的include目录
2-库管理器下包含boost,libevent,openssl,thrift的lib目录
3-引用.lib文件
Thrift:libthrift.lib;libthriftnb.lib;
Libevent:libevent.lib;
Openssl:libssl.lib;libcrypto.lib;
4-属性->C/C++->预处理器:添加thrift_EXPORTS;预处理
5-Release模式下属性->C/C++->优化:全程序优化选是GL
6-Debug模式下属性->C/C++->优化:全程序优化选否
3.1.4.3.QA
1-工程编译时发现错误/警告如下:
错误:无法解析的外部符号class apache::thrift::TOutput apache::thrift::GlobalOutput…… 
警告:ClientService.obj : warning LNK4049: 已导入本地定义的符号 ?GlobalOutput@thrift@apache@@3VTOutput@12@A (class apache::thrift::TOutput apache::thrift::GlobalOutput)0

解决方案:thrift工程和项目工程中需要添加预处理thrift_EXPORTS;属性->C/C++->预处理器

thrift-0.13.0.exe thrift-0.13.0.tar.gz


目之所及,皆是回忆,心之所想,皆是过往

分享这篇帖子


链接帖子
分享到其他站点

简单的时间回显的服务端和客户端的VS项目源码

ThriftTest.zip

 

time.thrift:

service TimeService {
    i32 TellMeTime()
}

输入命令:

thrift -gen cpp .\time.thrift

 


目之所及,皆是回忆,心之所想,皆是过往

分享这篇帖子


链接帖子
分享到其他站点

创建帐户或登录来提出意见

你需要成为会员才能提出意见

创建帐户

注册成为会员。只要几个简单步骤!

注册帐户

登录

已有帐户? 请登录。

现在登录
登录关注  

×
×
  • 创建新的...

重要信息

注册必须使用2-8个中文汉字作为账号