[心得]Mac下編譯thrift踩坑總結
thrift 0.8.0
安裝8的時候會遇到如下問題,並按如下解決:
Osx 10.10 是比較新的系統, 從這個版本開始, 系統預設編譯器從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.xx.mobile.hotel.sc.demo
service HelloWorldService {
string sayHello(1:string username)
}
執行:thrift -gen java HelloWorld.thrift 將在同級目錄下生成gen-java/com/xx/mobile/hotel/sc/demo/HelloWorldService.java檔案。
相關文章
- windows下編譯安裝thriftWindows編譯
- ijkplayer編譯踩坑記錄編譯
- Laragon 編譯 Vue 踩坑記錄Go編譯Vue
- Vue + TypeScript 踩坑總結VueTypeScript
- 美團小程式框架mpvue踩坑總結編一框架Vue
- 【踩坑記】Ubuntu 20.04.6 LTS下編譯安裝gcc 4.4.0Ubuntu編譯GC
- Laravel Mix 編譯 Vue 踩坑記錄Laravel編譯Vue
- c語言踩坑總結C語言
- Mac下Charles踩坑記錄Mac
- stylelint 接入實戰踩坑總結
- Kafka SASL ACL配置踩坑總結Kafka
- 給你總結幾個ES下最容易踩的坑
- windows下Hive搭建踩坑彙總WindowsHive
- ReactNative 之FlatList踩坑封裝總結React封裝
- 編譯ROCKSDB總結編譯
- 使用setInterval與clearInterval踩的小坑總結
- 為 Android 編譯並整合 FFmpeg 的嘗試與踩坑Android編譯
- Rust 交叉編譯與條件編譯總結Rust編譯
- mpvue小程式以及微信直播踩坑總結Vue
- Flutter 開發踩坑記錄(乾貨總結)Flutter
- Linux各大發行版個人踩坑總結Linux
- mac 安裝nvm 踩坑Mac
- 編譯器後端總結編譯後端
- 寫Java這麼久,JDK原始碼編譯過沒?編譯JDK原始碼踩坑紀實JavaJDK原始碼編譯
- webpack心得總結Web
- Webpack的踩坑與彙總Web
- golang的defer踩坑彙總Golang
- 電視機頂盒web開發總結,避免踩坑Web
- [rabbitmq]安裝ampq的擴充套件的踩坑總結MQ套件
- 工作心得和總結
- Android編譯通過,執行編譯錯誤問題總結Android編譯
- 踩坑記錄:vue-cli-service: command not found(Mac環境下)VueMac
- android反編譯相關命令總結Android編譯
- centos下caffe用GPU編譯搭建過程以及錯誤總結CentOSGPU編譯
- Mac 安裝thriftMac
- OpenJFX編譯填坑之路編譯
- pytorch分散式訓練注意事項/踩坑總結 - 持續更新PyTorch分散式
- Kaldi在ubuntu 18.04下編譯小結Ubuntu編譯
- flutter 編譯報錯總結(不斷更新)Flutter編譯