mac os x10.10 安裝thrift

來源:互聯網
上載者:User

標籤:

http://thrift.apache.org/docs/install/

一:安裝最新版(自動安裝)

最簡單的是用homebrew進行安裝

  • 安裝homebrew 在終端輸入ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

  • 安裝thrift   brew install thrift

用brew安裝的thrift版本是0.9的,but,我們項目中得thrift版本是0.8的,所以果斷卸載掉。

 brew uninstall thrift。轉到下面第二種方法安裝thrift

二:手動安裝0.8.0

先安裝依賴。

  • 安裝BOOST

下載:http://www.boost.org/

命令:./bootstrap.sh,該命令用於產生bjam可執行檔,這個東西就是用來編譯boost庫

命令:sudo ./b2 threading=multi address-model=64 variant=release stage install 

  • 安裝 libevent

下載:http://libevent.org/

命令:./configure --prefix=/usr/local

命令:make

命令:sudo make install 

  • 安裝 Apache Thrift

下載:http://thrift.apache.org/

編譯命令:./configure --prefix=/usr/local/ --with-boost=/usr/local/lib --with-libevent=/usr/local/lib --without-ruby --without-python --without-perl --without-php

有一些不相關的code genorater可以不要了,不然又得會報錯。。。

安裝命令:sudo make install

thrift -version 可以查看安裝是否成功和版本

thrift-0.8.0.tar.gz

安裝8的時候會遇到如下問題,並按如下解決:

以下摘自美團 Created by 曹繼光, last modified by 嚴鑫 on 十月 10, 2014

Osx 10.9 是比較新的系統, 從這個版本開始, 系統預設編譯器從GCC 改為 Clang(GCC -v 一下, 給的是clang 的提示). 

Thrift 0.8  代碼相對又比較老, 在新的編譯器上遇到了下列一些問題.

問題1 :

  多個源碼檔案報錯 # include <tr1/functional>, file not found, 改為 # include <boost/tr1/functional.hpp> 解決.

  需要修改以下檔案:

  • lib/cpp/src/concurrency/ThreadManager.h  line:24
  • lib/cpp/src/async/TAsyncChannel.h line:23
  • lib/cpp/src/async/TAsyncChannel.cpp line:21
  • lib/cpp/src/async/TAsyncProcessor.h line:23
  • lib/cpp/src/async/TAsyncBufferProcessor.h line:23

 原因:  在我實驗的環境下, 此標頭檔有尾碼名/usr/local/include/boost/ tr1/functional.hpp

問題2:

  cpp 測試代碼 test/Benchmark.cpp 編譯失敗,  shared_ptr  ambigous , 用 boost::shared_ptr 替換 shared_ptr,

  錯誤消失.

  原因: Clang 支援 C++ 11, 其 標準庫內建 shared_ptr(std::shared_ptr, 參考 http://zh.cppreference.com/w/cpp/memory/shared_ptr) 

 故需顯式指定名字空間.

 三:測試

下面編寫一個HelloWorld.thrift 來測試一下,內容如下:

namespace java com.meituan.mobile.hotel.sc.demo

service HelloWorldService {
     string sayHello(1:string username)
}

執行:thrift -gen java HelloWorld.thrift 將在同級目錄下產生gen-java/com/meituan/mobile/hotel/sc/demo/HelloWorldService.java檔案。

 

mac os x10.10 安裝thrift

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.