最近一两天都在研究如何在 VS2008上编译thrift的库文件 编译出来是静态库
1、所需要的文件
1)libevent-2.0.21-stable.tar.gz
编译 libthriftnb工程(非阻塞)所需要的文件
2)thrift-0.9.3.tar.gz
2、编译工程
源码工程 下载地址 http://pan.baidu.com/s/1ge4hyhX 该路径存储的是 .sln文件,打开即可
3、示例程序
hello.thrift的文件
service hello {
void func1( )
}
1)生产目标代码
C:\Users\admin\Desktop\Hello>thrift-0.9.3.exe --gen cpp hello.thrift
生产的目标文件如下图:
4、VS2008创建工程进行测试
1)客户端代码
#include <transport/TSocket.h>
#include "hello.h"
#include <protocol/TBinaryProtocol.h>
#include <server/TSimpleServer.h>
#include <transport/TServerSocket.h>
#include <transport/TBufferTransports.h>
#include <string>
#pragma comment(lib, "libthrift.lib")
using namespace ::apache::thrift;
using namespace ::apache::thrift::protocol;
using namespace ::apache::thrift::transport;
using namespace ::apache::thrift::server;
using boost::shared_ptr;
#pragma comment(lib,"libthrift.lib")//链接库文件
int main(int argc, char** argv) {
int port = 9090;
shared_ptr<TTransport> socket(new TSocket("127.0.0.1", 9090));
shared_ptr<TTransport> transport(new TBufferedTransport(socket));
shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
helloClient client(protocol);
try{
transport->open();
client.func1();
transport->close();
}catch(TException& tx){
printf("ERROR:%s\n",tx.what());
}
getchar();
return 0;
}
2)服务端代码
hello_server.skeleton.cpp
编译运行即可看到结果