前言html
編譯調試項目的過程當中涉及到caffe的編譯,提示沒有安裝protobuf的錯誤,本文詳解protobuf的安裝;linux
問題描述git
解決步驟github
1.查看google protobuf的github,沒有直接使用release而是對源碼按照readme文件進行了編譯;curl
protobuf須要一些依賴庫,須要先進行安裝;工具
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
出現問題網站
注意,紅框中的內容表示當前系統的sources.list中沒有該庫的源連接(目錄在/etc/apt/sources.list),但並不表示當前系統沒有安裝該庫;ui
不過,博主的當前系統的確是沒有安裝該庫;google
2.安裝curl依賴庫,參考here,不過最後的步驟改成如下命令則可正確安裝;url
sudo make install
3. 按照protobuf的readme操做運行如下命令出錯;
$ ./autogen.sh
錯誤以下
說明缺乏gmock這個依賴庫;
4.安裝gmock依賴庫,可參考here;
5.安裝以後按照readme的步驟進行編譯便可;
$ ./configure $ make $ make check $ sudo make install $ sudo ldconfig # refresh shared library cache.
注意,依賴庫的版本須要與項目須要的版本一致,故注意依賴庫的版本;
博主在解決這個問題的過程當中編譯完成的是當前protobuf的最新版本3.5.1,後來發現項目使用的是2.6.0或者2.6.1版本的;
linux系統安裝依賴庫的方法
如何安裝各類依賴庫或者工具包;
1)直接使用apt-get install進行安裝,這樣可以正確安裝的前提是系統中有源連接的文件,在/etc/apt/source.list文件中;
2)直接在github或者官網上找到包的源碼,本身按照必定的步驟進行編譯,須要注意的問題是版本是否一致;
3)一種是直接在相關網站上找到對應系統的包的release版本,使用sudo dpkg -I filename進行安裝,
這個須要注意的是安裝的包自己可能須要多個依賴項,須要將所有的依賴項都下載下來進行安裝,
同時也須要注意包的版本是否匹配,另外,網站上的依賴包可能會有壞的,須要檢查一下是否正確安裝依賴項,
不能只查看文件,文件存在不必定正確安裝,有可能只是一個空的連接,切記切記!!!!!
另外,咱們使用的板子是ARM板子,故選擇的包是arm64的,同時系統版本的codename是Xenial的,選擇包的版本的時候須要注意。
使用lsb_release -a命令行能夠查看系統的版本屬性等;
通常含有箭頭的文件可能就是某個連接,沒有正確安裝;
參考
2.依賴庫curl的安裝1;
3.curl的安裝-百度;
完