Thrift第二課 Linux編譯
阿新 • • 發佈:2018-02-17
net 應用 apt-get make 鏈接 錯誤 amp 定義 文件中 應用環境Ubuntu
1 編譯
問題1: configure:error: "Error: libcrypto required."
解決:apt-getinstall libssl-dev
問題2:uint32_tdoes not name a type
解決:
uint32_t定義文件在stdint.h,通過whereis stdint.h
stdint.h: /usr/include/stdint.h
說明在標準的include路徑下,將出現編譯錯誤的源碼文件中添加#include<stdint.h>
問題3:Makefile文件的BOOST庫路徑指定錯誤
解決:
MakeFile文件中:BOOST_DIR = /usr/local/include/boost
而實際的情況卻是:BOOST_DIR=/usr/include/boost
# apt-get installlibboost-dev
已經安裝成功,但是不清楚安裝的位置
查找本地boost庫的安裝目錄:
whereis boost
boost:/usr/include/boost
問題 4:ntohs 存在未定義的編譯錯誤
解決:
包含頭文件#include<arpa/inet.h>
問題5:編譯例子出現thrift庫函數大量未定義的編譯錯誤
解決:
主要是鏈接-lthrift必須放在CppClient.cppCppServer.cpp的後面,修改Makefile文件,調整兩者的順序即可。當某一個源碼文件編譯找不到函數定義的時候,只會往後查找函數定義
Thrift第二課 Linux編譯