、
终于到终点了,之前的都是做前期准备
一、thrift的编译。
- windows opnessl安装
- libevent windows vs2010
- Windows boost库安装 VS2010
\thrift-0.9.3\lib\cpp下有VS工程文件thrift.sln,用VS2010打开之后,会看到两个工程。
1)libthrift工程配置:
libthrift>属性->C/C++->常规->附加包含目录->\boost\boost_1_53_0
ibthrift>属性->库管理器->常规->附加库目录->\boost\boost_1_53_0\lib
注意是lib不是libs
2)libthriftnb工程配置:
libthriftnb>属性->C/C++->常规->附加包含目录->
\boost\boost_1_53_0
\libevent-2.0.22 这里在libevent安装的时候没有添加,不过在这里还是乖乖加上吧。
\libevent-2.0.22\include
\libevent-2.0.22\WIN32-Code
libthriftnb>属性->库管理器->常规->附加库目录-> 这里没有Linker选项,不过在Librarian里面配置是一样的效果
\boost\boost_1_53_0\lib- 编译完成之后会在thrift-0.9.3\lib\cpp\Debug下生成libthrift.lib文件,和libthriftnb.lib文件。
二、Thrift项目的创建。
语法就不详述了
- 创建文件hello.thrift,内容如下:
service hello {
void func1( )
}
- thrift –gen cpp hello.thrift (已将thrift,exe文件拷贝至C:\System目录下),会生成一个gen-cpp文件夹。
- 创建工程TestServer,将gen-cpp下的Server相关的文件拷贝至工程中。对应的创建一个TestClient工程将Client相关的cpp文件拷贝进来。
- 当然就是要配置Include和lib目录了。
Sever工程 Server>属性->C/C++->常规->附加包含目录->\thrift-0.9.3\lib\cpp\src
Sever工程 Server>属性->C/C++->常规->附加包含目录->\thrift-0.9.3\lib\cpp\src\thrift
Sever工程 Server>属性->连接器->附加库目录->\boost\boost_1_53_0\lib
Sever工程 Server>属性->连接器->附加库目录->\thrift-0.9.3\lib\cpp\Debug
附加库目录指向的是刚刚编译出的Debug目录
Client工程 Client>属性->C/C++->常规->附加包含目录->\boost\boost_1_53_0
Client工程 Client>属性->C/C++->常规->附加包含目录->\thrift-0.9.3\lib\cpp\src
Client工程 Client>属性->C/C++->常规->附加包含目录->\thrift-0.9.3\lib\cpp\src\thrift
Client工程 Client>属性->连接器->附加库目录->\boost\boost_1_53_0\lib
Client工程 Client>属性->连接器->附加库目录->\thrift-0.9.3\lib\cpp\Debug
5、 如果没有意外基本就可以运行了,后面就自己调试吧。
还是有些问题,待续。。
这是个续。。
hello工程编译之后出了很多链接的问题,也是不太懂就慢慢摸索一下。
主要是这些问题:TProtocol,TOutput,TConcurrentSendSentry,TConcurrentClientSyncInfo,TConcurrentRecvSentry(这个好像也没有,也不影响编译)。这其实都是libthrift工程中的文件,但是默认是没有编译进libthrift.lib里面的,这个还不清楚是为什么,那么解决办法就出来了。在libthrift工程中加入这些文件,重新编译。
注:好像之前说的版本问题都不太成立了
这个markdown真是用不好。。。。