為補充c++工程知識近期打算學習muduo原始碼,下面記錄muduo原始碼編譯鏈結及執行過程。
0.版本
作業系統ubuntu 14.04及以上,gcc-8.3.0,cmake-3.13.4
1.安裝必要的環境、依賴、工具
安裝cmake,boost,curl,protobuf.
sudo
apt-get
install cmake -y
sudo
apt-get
install libboost-dev libboost-test-dev -y
sudo
apt-get
install libcurl4-openssl-dev linc-ares-dev -y
sudo
apt-get
install protobuf-compiler libprotobuf-dev -y
git clone -b v0.8.2
3.編譯原始碼,如果順利的話,在../build/debug/
中能看到可執行檔案和庫
cd muduo
./build.sh -j2
4.執行乙個樣例,在瀏覽器中鍵入http://localhost:12345
即可觀察到結果
./inspector_test
可能出現的錯誤及解決方案:
編譯鏈結中可能會出現錯誤
問題1:.error: cannot convert 『const boost::shared_ptrmuduo::timezone::data』 to 『bool』 in return
bool valid() const
方案:智慧型指標無法判空,不過這個錯誤很奇怪,但是可以用下面**勉強解決它。
bool
valid()
const
問題2:error: typedef 『t_must_be_complete_type』 locally defined but not used [-werror=unused-local-typedefs]
方案muduo將編譯**現的warning視為error,如果我們能容忍warning,可以將其取消,即在cmakelists.txt中新增-wno-unused-local-typedefs
問題3:undefined reference to `google::protobuf::arena:?…
方案:看到undefined reference…錯誤大概率會想到是鏈結庫在編譯鏈結過程中沒鏈結進去,ok,果然是這個原因,然後在cmakelists.txt中新增動態庫位置,link_directories(/usr/local/lib/)
,解決之。
muduo網路庫的安裝和使用
一 安裝依賴庫 安裝cmake sudo apt get install cmake 安裝boost sudo apt get install libboost dev libboost test dev 三個非必須的依賴庫 curl c ares dns google protobuf sudo ...
muduo網路庫的安裝 編譯和使用
原文 github專案位址 安裝 安裝cmake sudo apt get install cmake 安裝boost sudo apt get install libboost dev libboost test dev 三個非必須的依賴庫 curl c ares dns google proto...
1 認識和安裝MongoDB MongoDB安裝包
2.配置環境變數 在任何的終端路徑都可以使用 c program files mongodb server 4.0 bin配置到環境變數中 3.安裝好mongodb資料庫後,我們需要啟用服務端才能使用。啟用服務的命令是 mongod。開啟命令列 先開啟執行 快捷鍵win r 然後輸入cmd後回車,就...