节俭设置问题

Posted

技术标签:

【中文标题】节俭设置问题【英文标题】:thrift setup issue 【发布时间】:2011-12-13 18:15:06 【问题描述】:

我有 VS 2010 并从 Apache Web 下载了所需的 tar 和 zip 文件。 thrift 文件夹中基本上有两个 VC++ 项目。一个在thrift-0.8.0\thrift-0.8.0\lib\cpp\thrift.sln,另一个在thrift-0.8.0\thrift-0.8.0\compiler\cpp\compiler.sln,所以基本上是两个项目。 我已经成功编译了thrift.sln 项目,并且能够成功生成两个lib 文件libthrift.liblibthriftnb.lib。在此之后,我有几个问题。

a) 我现在如何生成这个thrift.exe? b) 我尝试编译 compiler.sln 项目,但出现以下错误:

Build started: Project: compiler, Configuration: Debug Win32 ------
flex' is not recognized as an internal or external command,
operable program or batch file.
bison' is not recognized as an internal or external command,
operable program or batch file.
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: The command "flex -o "src/thriftl.cc" src/thriftl.ll
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: bison -y -o "src/thrifty.cc" --defines="src/thrifty.h" src/thrifty.yy
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: :VCEnd" exited with code 9009."

c) 我现在如何编译 thrift 文件?

出于测试目的,我直接从 Apache 网站下载了 thrift exe,并创建了一个示例 thrift 程序,但出现错误:

[ERROR:E:/thrift-0.8.0/thrift-0.8.0/lib/cpp/Debug/calculator.thrift:3] (last to
en was '02')
syntax error
[FAILURE:E:/thrift-0.8.0/thrift-0.8.0/lib/cpp/Debug/calculator.thrift:3] Parser
error during include pass.

请推荐 先谢谢各位了。。

【问题讨论】:

【参考方案1】:

Apache Web 上提供的 Thrift Exe 是 Win32 编译的 Exe,因此您可以直接使用 Thrift 文件创建自动生成的代码,并带有所需的语言标志 Thrift -c java tezt.thrift,&然后可以用于IPC。

【讨论】:

【参考方案2】:

从 0.10.0 版本开始

thrift 编译器项目是compiler\cpp\compiler.vcproj。它依赖于 Flex 和 Bison(WinFlexBison for Windows),这就是错误所指示的。

或者,您可以使用 CMake 文件生成 Visual Studio 解决方案。

有关详细说明,请参阅Apache Thrift on Windows。

【讨论】:

以上是关于节俭设置问题的主要内容,如果未能解决你的问题,请参考以下文章

保护基于节俭的通信

节俭电话给出“未知结果”

将服务器播放为节俭端点?

关于节俭函数返回列表

带有数据和行为的节俭枚举定义

节俭 ∣ Thrift