Apache Thrift 未安装在 Mac

Apache Thrift not installing on Mac

Mac OSX 10.10.5 (Yosemite) 这里。我正在尝试找到一个工具,它将:

  1. 给定一个definition/config文件,生成一个原生Cnetwork/socket客户端(库);和
  2. 给定一个definition/config文件,生成一个Javanetwork/socket服务器

实际上,两个工件将 运行(可能)在同一台机器上,但一个 必须 是本机 C,另一个 必须 变为 Java.

相信 Thrift 是可以完成这项工作的工具,但如果不是,或者如果有 other/better/easier 工具可以使用,那么我当然愿意接受其他建议。


马上,我有点期待 Thrift 会出现在某种发行版中,准备好 运行 原样。相反,根据 documentation 看来您必须自己构建它。输入痛苦。

我下载了压缩包 (v0.9.3),然后导航到解压后的目录。然后我 运行 ./configure (正如那些文档所说的那样),这会产生大量输出,最可疑的是:

Building C++ Library ......... : yes
Building C (GLib) Library .... : no     <--- heh?
Building Java Library ........ : no     <--- heh?
Building C# Library .......... : no
Building Python Library ...... : yes
Building Ruby Library ........ : no
Building Haxe Library ........ : no
Building Haskell Library ..... : no
Building Perl Library ........ : yes
Building PHP Library ......... : yes
Building Erlang Library ...... : no
Building Go Library .......... : no
Building D Library ........... : no
Building NodeJS Library ...... : yes
Building Lua Library ......... : no

现在我对 Thrift 一无所知,但对我来说,这看起来 不是 构建 "libraries"/"generators"/等。对于 C 或 Java,我特别感兴趣的两种语言!!! (1) 关于原因有什么想法吗?

接下来,指令状态为 运行 make,这会产生无法辨认的编译器错误:

...blah blah blah lots of compiler output, blah blah blah...

src/thrift/transport/TSSLSocket.cpp:147:24: error: use of undeclared identifier 'TLSv1_1_method'; did you mean 'TLSv1_method'?
    ctx_ = SSL_CTX_new(TLSv1_1_method());
                       ^~~~~~~~~~~~~~
                       TLSv1_method

src/thrift/transport/TSSLSocket.cpp:149:24: error: use of undeclared identifier 'TLSv1_2_method'; did you mean 'TLSv1_method'?
    ctx_ = SSL_CTX_new(TLSv1_2_method());
                       ^~~~~~~~~~~~~~
                       TLSv1_method

74 warnings and 2 errors generated.
make[4]: *** [src/thrift/transport/TSSLSocket.lo] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

(2) 知道如何解决这里问题吗?!?

这好像我要绕谷仓 3 边走。在文档的其他区域,我需要构建其他几个库(Boost 和 libevent),并且我 运行 也对这些构建的说明感到头疼(例如 运行 的版本 libevent 不喜欢我默认使用 Mac 等发布的 Bison 版本。

Thrift 是否是一个完全可以使用的应用程序,我可以 运行 在 Mac OS 上使用?我为什么要走过这栋楼?

所以最重要的是:(3) 如果它存在,我在哪里可以找到现成的运行 Thrift Mac 可执行文件?如果它不存在,是否还有其他更容易使用的工具 install/run?

最后,就这么简单:

brew install thrift