thrift安裝問題及tutorial實例運行_奔跑的鴕鳥_新浪博客
??? thrift安裝問題及tutorial實例運行
??? (2012-07-13 14:49:26)
??? 轉(zhuǎn)載▼
??? 標簽:
??? thrift
??? boost
??? ??? 分類: 開源軟件
??? thrift的實例執(zhí)行依賴boost,首先應(yīng)安裝boost
??? 1.安裝boost
??? 1.1.從網(wǎng)址:http://sourceforge.net/projects/boost/files/boost/1.50.0/下載boost安裝包
?????? 解壓到/usr/local/下:tar -zxvf boost_1_50_0.tar.gz
??? 1.2.安裝過程主要涉及如下步驟,進入一級目錄/usr/local/boost_1_50_0:
??????? $ ./bootstrap.sh //默認安裝到/usr/local/include/boost 和/usr/local/lib下
??????? $ ./b2 install
??? 1.3接下來設(shè)置環(huán)境變量自動導入:
?????? 先用vi創(chuàng)建文件:/etc/profile.d/boost.sh,(若不能執(zhí)行的話使用chmod a+x boost.sh設(shè)置執(zhí)行權(quán)限),
?????? 內(nèi)容為:
??????? #!/bin/sh
??????? #boost settings
??????? BOOST_ROOT=/usr/local/boost_1_50_0
??????? BOOST_INCLUDE=/usr/local/include/boost
??????? BOOST_LIB=/usr/local/lib
??????? export BOOST_ROOT BOOST_INCLUDE BOOST_LIB
??? 2.thrift測試實例
?????? 安裝完thrift先試驗一下。
?????? 2.1 C++實例
?????? 進入thrift下的tutorial,編譯給出的例子:
?????? thrift -r --gen cpp tutorial.thrift
?????? 會在gen-cpp目錄下生成一些文件。然后進入CPP目錄,修改Makefile文件如下:
?????? BOOST_DIR = /usr/local/include/boost
?????? THRIFT_DIR = /usr/local/include/thrift
?????? LIB_DIR = /usr/local/lib
?????? 進行編譯:
?????? make
?????? 進入cpp目錄下,執(zhí)行make命令,如果編譯出錯,第一個錯誤是
?????? /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:35: error: there are no arguments to ‘htons’ that depend on a template parameter, so a??????
?????? declaration of ‘htons’ must be available
?????? 則修改Makefile,加上編譯選項-DHAVE_NETINET_IN_H
?????? server: CppServer.cpp
????????? g++ -DHAVE_NETINET_IN_H -o CppServer -I${THRIFT_DIR} -I${BOOST_DIR}? -I../gen-cpp -L${LIB_DIR} -lthrift CppServer.cpp ${GEN_SRC}
?????? 再進行make,得到兩個可執(zhí)行文件,CppServer、CppClient。
?????? 在兩個不同的終端執(zhí)行CppServer、CppClient,先啟動服務(wù)器,后啟動客戶端。????????????????
?????? 啟動可能出現(xiàn)如下問題:error while loading shared libraries,解決方法:
????????? 一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。
????????? 將/etc/ld.so.conf存檔后,還要執(zhí)行「/sbin/ldconfig –v」來更新一下才會生效。
??? 2.2 java實例
??????? thrift -r --gen java tutorial.thrift
?????? 會在gen-java目錄下生成一些文件,然后進入java目錄,執(zhí)行ant(需要安裝ant,安裝過程參考ant安裝)命令,會提示如下錯誤:
??????? BUILD FAILED
?????? /opt/thrift-0.8.0/tutorial/java/build.xml:47: /opt/thrift-0.8.0/lib/java/build
?????? does not exist.
?????? 解決方法:使用java時,要編譯thrift的java包
?????? cd thrift-0.8.0/lib/java
?????? ant
?????? 編譯完成以后會在當前目錄下出現(xiàn)一個libthrift-0.8.0.jar
?????? 把libthrift-0.8.0.jar拷貝到/usr/local/lib下(這個位置是因為在thrift的tutorial?
?????? 中,java sample code的build.xml中指明了要在/usr/local/lib找到這個jar文
?????? 件)。
??????? 然后把/usr/local/lib/libthrift-0.8.0.jar也加入到CLASSPATH中。
???????? 再次進入java目錄(/opt/thrift-0.8.0/tutorial/java),執(zhí)行ant命令,得到兩個可執(zhí)行文件,CppServer、CppClient。
?????? 在兩個不同的終端執(zhí)行JavaCppServer、JavaClient,先啟動服務(wù)器,后啟動客戶端。
?????? 客戶端執(zhí)行需要參數(shù)如下:./JavaClient secure或 ./JavaClient simple
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
