Win7上VS2015编译和使用Thrift 一. 编译Boost 1:从官方网站(http://www.boost.org/)上下载某一版本的Boost,比如我下载的boost_1_68_0.tar.gz的版本. 2:将下载好的boost_1_68_0.tar.gz解压到某一路径下(比如:E:\boost_1_68_0)。 3:打开CMD窗口,cd到boost解压的目录下。运行bootstrap.bat批处理文件。 4:完成3后,当前目录下会生成一个bjam.exe文件和b2.exe文件。直接执行其中任意一个exe文件(我执行的是bjam.exe),会进行大约15分钟的库的编译(生成动态链接库和静态链接库)。 在Windows 7操作系统中,使用Visual Studio 2015(VS2015)编译和使用Thrift,需要经过一系列步骤,涉及到Boost、OpenSSL、libEvent等依赖库的编译。以下是对这些步骤的详细说明: 我们需要准备Boost库。Boost是一个开源的C++库集合,为开发人员提供了许多实用的功能。可以从Boost官方网站下载最新或特定版本的源码包,例如boost_1_68_0.tar.gz。下载完成后,将其解压缩至指定路径,如E:\boost_1_68_0。接着,在命令行界面(CMD)中切换到该目录并执行bootstrap.bat,这将生成bjam.exe和b2.exe。运行这两个文件之一(如bjam.exe)开始编译过程,生成Boost的动态和静态链接库。 然后,需要编译OpenSSL。OpenSSL是一个用于加密通信的安全套接层库。可以参考相关教程,例如https://blog.csdn.net/zhuyinglong2010/article/details/80781556,按照步骤进行编译安装。 接下来是编译libEvent。libEvent是一个事件通知库,用于处理网络事件。尽管可以仅包含头文件而不编译库,但在某些情况下,编译libEvent可能仍然是必要的。参考教程https://blog.csdn.net/tpriwwq/article/details/53467128来完成这个步骤。 编译Thrift(libthrift)是核心部分。从Apache Thrift官网(https://thrift.apache.org/download)下载安装包,解压后,使用VS2015打开thrift-master\lib\cpp目录下的sln文件。在项目属性中,"VC++目录"的"包含目录"需要添加Boost、OpenSSL和libEvent的头文件路径,"库目录"则需添加Boost和OpenSSL的库文件路径。完成设置后,编译项目,成功后会生成libthrift.lib库文件。 使用Thrift时,需要注意以下几点: 1. 在项目的"VC++目录"的"包含目录"中,确保包含Boost、OpenSSL、libEvent以及Thrift的头文件目录。 2. 在"链接器"的"输入"选项卡下的"附加依赖项",添加libthrift.lib、libcrypto.lib和libssl.lib。libcrypto.lib和libssl.lib是OpenSSL的库文件。 3. 如果遇到与Boost库不兼容的问题,如无法使用`boost::shared_ptr`,可以改用`std::shared_ptr`。 4. 对于线程管理,Thrift提供了多种线程工厂,如在Windows环境下,可能需要将PosixThreadFactory替换为PlatformThreadFactory。创建Thrift服务器时,需要实例化处理器、协议工厂、传输工厂以及服务器套接字,并使用线程管理器和线程工厂创建服务器。 一个简单的Thrift服务器示例代码如下: ```cpp shared_ptr<ServHandler> handler(new ServHandler()); shared_ptr<TProcessor> processor(new ServProcessor(handler)); shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory()); shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory()); shared_ptr<TServerTransport> serverTransport(new TServerSocket(9090)); // 指定15个线程 shared_ptr<ThreadManager> threadManager = ThreadManager::newSimpleThreadManager(15); shared_ptr<PlatformThreadFactory> threadFactory = shared_ptr<PlatformThreadFactory>(new PlatformThreadFactory()); threadManager->threadFactory(threadFactory); threadManager->start(); printf("start...\n"); TThreadPoolServer server(processor, serverTransport, transportFactory, protocolFactory, threadManager); server.serve(); ``` 这个示例展示了如何使用Thrift创建一个线程池服务器,监听9090端口,并使用TThreadPoolServer类来服务客户端请求。 总结来说,要在Win7系统上使用VS2015编译和运行Thrift,必须正确配置和编译Boost、OpenSSL、libEvent这三个依赖库,然后编译Thrift源码生成libthrift.lib库,最后在项目中配置好相关依赖,并编写Thrift服务器代码来实现服务。整个过程涉及到了多个库的编译和配置,需要仔细操作,确保每个步骤都正确无误。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助