部分内容详见大神转载链接Thrift框架-Windows-C++ x64编译_清明庐州月的博客-CSDN博客_windows 编译thrift
感谢大神的技术分享,本人也为在windows端使用thrift纠结了很长时间,坑还是挺多的,这位大神将坑的解决方案基本都列出了
Windows端,使用VS的话,可以使用nuget自动下载包,这样就省却了下载编译支持库的麻烦,可设置下载源:https://www.nuget.org/api/v2/
各个库如图:
安装完成后,配置工程的附加包含目录,示例:
然后编译基本就没啥问题了
使用过程中又遇到问题,实验写代码server后,debug和release编译一直过不去,报link2001的错误,而所有的网上示例都没有描述相关内容。纠结了两天之后,终于发现一个低级错误,就是我用IDL生成的头文件和cpp文件虽然都拷贝到了工程目录中,但是并没有包含到项目里。把这几个文件添加到项目中后,就没问题了
最后还遇到一个问题,debug版本的程序编译没问题,release版本程序报link2001.查阅网络文档发现,这是thrift的问题,thrift库release在生成时,必须关闭全局优化,关闭后,再引入到调用项目中,就编译没问题
最新发现,在目前版本的thrift v0.15.0和0.16.0中,thrift的lib编译时会提示部分cpp不存在的情况,将提示的cpp文件目录从工程文件中删除,确实能编译通过,但是在使用时就会报编译错误。正确的方法是,将提示测cpp从工程目录中删除,同时添加src对应那个文件夹中的其他文件,再编译调用就没问题了。这应该是thrift的bug,部分文件改名了,但是VS项目目录中没改。