thrift使用過程中的問題
1、安裝過程無需./bootstrap這個過程,本來就沒有這個檔案
2、Apache要求安裝之後認證,可以在svn上面下一個KYES完成認證過程;二、thrift安裝完成之後,可以通過一個例項來熟悉他的使用過程。要感謝xiaoshe朋友的部落格http://blog.csdn.net/hbuxiaoshe/article/details/6558391,給我提供了一個完整的學習樣例。該部落格中寫的非常清晰。
有幾個需要注意的問題:
thrift本身是一個開源的軟體,它一直處於開發過程中,難免出現一些bug,下面是我遇到的幾個bug;
第一: 在執行編譯thrift生成的伺服器端程式時,出現
error: ‘uint8_t’ does not name a type error: ‘uint32_t’ does not name a type這個問題一開始的確讓我很迷茫,難道使用thrift生成程式碼的同時,還需要手動新增各種標頭檔案嗎,這個問題看起來很簡單,只要手工在各個相關檔案中加入stdint.h標頭檔案就可以,不過這個要求很匪夷所思。
後來在網上查詢,找到了這個問題的解決方法,在TProtocol.h中有這樣的語句:#ifdef HAVE_NETINET_IN_H的預處理命令,而且後面就是我們想要的標頭檔案。
因此在g++之後,加上引數 -DHAVE_NETINET_IN_H實現變數宣告,就可以解決這個問題。我的理解是現在thrift存在的一個問題,或者直接修改TProtocol.h不過,我不建議這樣做。
第二: undefined reference to `apache::thrift::TApplicationException::write(apache::thrift::protocol::TProtocol*) const'
這也是存在的一個原始碼的bug,在protocol/TBinaryProtocol.h中,有兩條語句
static const int32_t
這時,想到前面出現的問題,只要改成 static const uint32_t,問題就解決了
三、還有一點需要注意的就是,在一個編譯命令中,遇到來一個非常奇怪的問題,一直沒有找到合適的解決方法,後來發現把-lthrift放在給g++的最後就可以解決了,後來理解到原因可能是後面還有內容需要依賴於thrift庫,而把他放在前面,後面對庫的依賴就找不到來。。
可以看出g++後面引數的順序和位置對程式的編譯和執行的影響還是挺大的。
由龐順龍最後編輯於:3年前
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- Mac電腦使用imazing過程中遇到的問題Mac
- Composer 使用過程中遇到的問題和解決方案
- 爬蟲過程中遇到的問題爬蟲
- Deployer 使用過程的一些問題
- 安裝yeoman,grunt過程中的問題
- 學習vue過程中遇到的問題Vue
- Filebeat和logstash 使用過程中遇到的一些小問題記錄
- 記錄在使用Django開發過程中遇到的問題No.2Django
- 儲存過程訪問其他使用者的表的問題儲存過程
- docker使用redis過程出現的問題記錄DockerRedis
- npm install 使用過程出現的問題總結NPM
- Flutter開發過程中遇到的問題記錄Flutter
- 電商APP測試過程中遇到的問題APP
- munium學習過程中問題解決
- 開發過程中mysql常見問題MySql
- 在效能測試的過程中會遇到哪些問題?
- 教育類app開發過程中,需要避免的問題APP
- 安裝gcc過程中遇到相互依賴的問題GC
- 皮膚開發過程中遇到的3個問題
- ORACLE RAC TO RAC DG搭建過程中可能遇到的問題Oracle
- 使用CoordinatorLayout過程中遇到的兩個問題以及淺析CoordinatorLayout工作機制
- 關於ubuntu安裝中過程遇到問題Ubuntu
- Ubuntu16.04編譯VIORB過程中遇到的問題 尤其是rosbag的問題Ubuntu編譯ORBROS
- 如何處理六西格瑪過程中遇到的問題?
- 敏捷轉型過程中避不開的4個問題敏捷
- 關於 AppCrawler 執行過程中的幾個小問題APP
- ETL過程中資料精度不準確問題
- 手把手教你通過Thrift訪問ApsaraDBforHBase
- IntelliJ IDEA 外掛Rest Client 外掛使用過程遇到的問題IntelliJIdeaRESTclient
- PYTORCH安裝過程以及遇到的問題PyTorch
- mysql多次呼叫儲存過程的問題MySql儲存過程
- 整理debian安裝過程中的一些問題與方法
- 直播賣貨APP開發過程中的最佳化問題APP
- 雲端遷移過程中的技術問題和解決思路
- 區塊鏈面試工作招聘過程中的40個問題區塊鏈面試
- 關於centos 7安裝binwalk的過程中產生的問題CentOS
- 記錄 dcat-admin 使用 Laravel-activitylog 記錄使用者行為過程中遇到的問題Laravel
- 進行版本迭代過程中,使用spring jpa來完美解決資料表更新的問題Spring