thrift安裝遇到的問題以及解決方法(必看篇)
1. 必須安裝boost。最新的穩(wěn)定版是1.48.0。
1.1.先下載:http://sourceforge.NET/projects/boost/files/boost/1.48.0/
選擇tar.gz包,
下載后我解壓到了/usr/local/boost_1_48下:tar zxvf boost1.48.0 -C /usr/local/boost_1_48
1.2.安裝過程和以前的老版本有些不同,看自帶軟件包里的index.html就可以了:
主要內(nèi)容涉及到安裝的就2步,很簡單,進入一級目錄:
$ ./bootstrap.sh //默認安裝到/usr/local/include/boost 和/usr/local/lib下
$ ./b2 install
1.3接下來設(shè)置環(huán)境變量自動導(dǎo)入:
先用vim創(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=/opt/boost_1_48 BOOST_INCLUDE=/usr/local/include/boost BOOST_LIB=/usr/local/lib export BOOST_ROOT BOOST_INCLUDE BOOST_LIB 注意: linux程序運行時加載共享庫出現(xiàn)的錯誤: "error while loading shared libraries: xxxx: cannot open shared object file: No such file or directory" 解決步驟: 1、使用find命令查找缺失的xxxx共享庫文件所在位置。參考:#find 目錄 -name "xxxx*" 2、將找到的目錄位置寫入 /etc/ld.so.conf 配置文件,這個文件記錄了編譯時使用的動態(tài)鏈接庫的路徑。 3、然后使用ldconfig命令,使配置生效。
2. 安裝libevent(選擇noblokingserver必須安裝libevent,如果出現(xiàn)noblokingserver相關(guān)的錯誤就是沒有安裝libevent)。
我安裝的版本是最新的libevent1.4.13:
wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz tar xvzf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable ./configure && make make install
3. 接下來就是安裝thrift,我下載的是最新的thrift0.8.0版本,進入thrift0.8.0目錄:
因為我只需要編譯cpp,用以下命令:(編譯選項可以參考http://www.coder4.com/archives/2110):
./configure --with-cpp --with-boost --without-python --without-csharp --without-java --without-erlang --without-perl --without-php --without-php_extension --without-ruby --without-haskell --without-go #make make #install make install
如果還需要編譯Java或者別的語言,還需要提前安裝別的包,具體參考http://wiki.apache.org/thrift/ThriftRequirements:
C++ Boost 1.33.1+ libevent (optional, to build the nonblocking server) zlib (optional) Java Java 1.5+ Apache Ant Apache Ivy (recommended) Apache Commons Lang (recommended) SLF4J C#: Mono 1.2.4+ (and pkg-config to detect it) or Visual Studio 2005+ Python 2.4+ (including header files for extension modules) PHP 5.0+ (optionally including header files for extension modules) Ruby 1.8+ (including header files for extension modules) Erlang R12 (R11 works but not recommended) Perl 5 Bit::Vector Class::Accessor
安裝完thrift先試驗一下。進入thrift下的tutorial,編譯給出的例子:
thrift -r --gen cpp tutorial.thrift,
會在gen-cpp目錄下生成一些文件。然后進入CPP目錄,進行編譯:
make
有可能遇到錯誤,提示: hton* declarations will not be visible to the compiler。這是thrift的一個bug,可能有的版本沒有該錯誤,但是我安裝的這個版本有。解決的辦法是:
使用g++編譯時加入 -DHAVE_NETINET_IN_H
這樣可以使預(yù)處理器include進 netinet/in.h in thrift/protocol/TPrototol.h, 這樣 hton* declarations will be visible to the compiler.
下面是一個老外對這個bug的說明:
TProtocol.h has the following lines which cause the compiler error when HAVE_NETINET_IN_H is not defined.
#ifdef HAVE_NETINET_IN_H #include <netinet/in.h> #endif
This might be a bug in the Thrift configure script which somehow skips the define.
針對上面的那個例子,修改CPP文件夾里的Makefile,在編譯行加入相應(yīng)的參數(shù):
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í)行文件,先執(zhí)行CppServer,再啟動CppClient。
到此,thrift安裝完畢。
以上就是小編為大家?guī)淼膖hrift安裝遇到的問題以及解決方法(必看篇)全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
CentOS 7.6 Telnet服務(wù)搭建過程(Openssh升級之戰(zhàn) 第一任務(wù)備用運輸線搭建)
這篇文章主要介紹了CentOS 7.6 Telnet服務(wù)搭建過程(Openssh升級之戰(zhàn) 第一任務(wù)備用運輸線搭建),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2019-10-10Linux?服務(wù)器上配置基于SSH?密鑰的身份驗證及使用方法
SSH是一種加密協(xié)議,用于管理和與服務(wù)器通信,在使用?Linux?服務(wù)器時,您經(jīng)常會花費大量時間在通過?SSH?連接到服務(wù)器的終端會話中,這篇文章主要介紹了Linux?服務(wù)器上配置基于SSH?密鑰的身份驗證及使用方法,需要的朋友可以參考下2024-04-04Centos修改DNS重啟或重啟network服務(wù)后丟失問題解決方法
這篇文章主要介紹了Centos修改DNS重啟或重啟network服務(wù)后丟失問題解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12Linux與Windows跨平臺文件共享的實現(xiàn)方案
在智慧工廠的應(yīng)用場景中,常常需要通過工控機集中讀取多臺設(shè)備生成的日志來獲取運行數(shù)據(jù),由于設(shè)備通常運行 Windows 系統(tǒng),而工控機多采用 Linux 環(huán)境,所以本文介紹了Linux與Windows跨平臺文件共享的實現(xiàn)方案,需要的朋友可以參考下2025-04-04Linux基礎(chǔ):如何找出你的系統(tǒng)所支持的最大內(nèi)存
這篇文章主要介紹了Linux基礎(chǔ):如何找出你的系統(tǒng)所支持的最大內(nèi)存,需要的朋友可以參考下2015-04-04linux上TCP connection timeout問題解決辦法
這篇文章主要介紹了 linux上TCP connection timeout問題解決辦法的相關(guān)資料,需要的朋友可以參考下2017-04-04阿里云LNMP 云服務(wù)器重啟后網(wǎng)站打不開解決方法
購入了阿里云云服務(wù)器之后,感覺十分滿意,特別是阿里云的“快照”功能,對于折騰帝來說簡直就是神器。云服務(wù)器隨便弄,弄壞了大不了一個“回滾快照”,秒秒鐘的事而已2013-06-06