2016-01-30 5 views
1

Mac OSX 10.10.5 (Yosemite) здесь. Я пытаюсь найти инструмент, который будет:Apache Thrift не устанавливается на Mac

  1. Учитывая файл определения/конфигурации, сгенерируйте собственный клиент (библиотека) сети/сокета C; и
  2. Учитывая файл определения/конфигурации, генерировать Java сети/сокет сервер

В действительности оба артефакты будут выбежали (вероятно) на ту же машину, но один имеет быть нативные С и другой имеет быть Java.

Я считаю, Thrift является инструментом, который может сделать эту работу, но если это не так, или если есть другие/лучше/проще инструменты использовать, то я, конечно, открыт для других рекомендаций.


Сразу, я вроде как ожидается бережливость прийти в какой-то распределение, готов быть побежал как есть. Вместо этого, согласно documentation, похоже, что вы должны сами создать его. Введите боль.

Я загрузил tarball (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 

Теперь я не знаю ничего о бережливости, но мне, это выглядит это не создание «библиотек»/«генераторов»/и т. д. для C или Java, два lanaguages, которые меня особенно интересуют !!! (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) Любая идея, как устранить неисправность здесь?!?

Это похоже на то, что я собираюсь с трех сторон вокруг сарая. В других областях документации мне нужно создать несколько других библиотек (Boost и libevent), и я столкнулся со всякими головными болями с инструкциями для этих сборников (например, версия libevent не понравилась версия Bison что у меня были эти корабли по умолчанию с Mac и т. д.).

Does Thrift пришло как полностью готовое к использованию приложение, которое я могу запустить только на Mac OS? Почему мне нужно пройти через все это здание?

Итак, самое главное: (3) Если он существует, где я могу найти готовый исполняемый файл Thrift Mac? И если этого не существует, есть ли другие инструменты, которые легче установить/запустить?

+0

Re 'TLSv1_1_method' => [БЕРЕЖЛИВОСТЬ-2515] (https: //issues.apache.орг/JIRA/просмотр/БЕРЕЖЛИВОСТЬ-2515). Стоило мне 10 секунд погулять, первым ударом. – JensG

ответ

3

В конце концов, это было так просто, как:

brew install thrift

+0

После экспериментов с Thrift в течение нескольких дней я в конечном итоге обнаружил, что протокольные буферы Google легче использовать, настраивать и быть быстрее, чем Thrift, который кажется мертвым или умирающим проектом. – smeeb