1. 程式人生 > >Thrift第二課 Linux編譯

Thrift第二課 Linux編譯

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編譯