(原)Ubuntu16中卸載並重新安裝google的Protocol Buffers


轉載請注明出處:

http://www.cnblogs.com/darkknightzh/p/5782992.html

===========================================================================

170316更新:

目前最新穩定版本應該是3.2:

https://github.com/google/protobuf/releases

可以查看。也可以使用該網址中的進行下載。可以直接安裝。

170316更新結束

170122更新:

1. 目前最新版本為3.0(有找.1和3.2,不知道是否不是穩定版的)。3.0的依舊可以用下面的方式安裝。

2. protobuf3.0的下載地址:https://github.com/google/protobuf/releases/tag/v3.0.0

3. protobuf的下載地址:https://github.com/google/protobuf/releases。這兩個都不需要翻牆了。

4. http://www.cnblogs.com/darkknightzh/p/5804395.html為使用protobuf的簡單的例子。如果編譯該cpp文件的時候,提示好多未定義的引用:

addressbook.pb.cc:(.text+0x133):對‘google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(google::protobuf::Descriptor const*, google::protobuf::Message const*, int const*, int, int, int, int, int, int)’未定義的引用
addressbook.pb.cc:(.text+0x193):對‘google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(google::protobuf::Descriptor const*, google::protobuf::Message const*, int const*, int, int, int, int, int, int)’未定義的引用

可能是因為電腦安裝了兩個不同版本的protobuf(ubuntu16默認已經安裝了protobuf.so.9這系列的,新裝的是protobuf.so.10系列的)。默認的路徑見160819更新

170122更新結束

===========================================================================

目前最新的是1.6.1

1. 卸載掉老版本的Protocol:

sudo apt-get remove libprotobuf-dev

2. 下載最新的Protocol Buffers。下載網址:https://developers.google.com/protocol-buffers/docs/downloads。需跨越長城。最新版的是2.6.1.

說明:最好不要在github上面下載(可以直接使用170316中的地址進行下載)。此處順便貼出github的網址:https://github.com/google/protobuf/。原因是,github上面下載的沒有configure文件。此時需要先在該文件夾內運行./autogen.sh命令。該命令會從無法訪問的網站下載文件。導致連接超時(如果電腦能fq,就沒事。否則就沒法下載成功。我這邊是使用的電腦是win7,能fq,但是安裝的是服務器,是ubuntu,沒辦法fq,因而會出現死結)。。。

所以直接在可以fq的電腦上下載protobuf-2.6.1.tar.gz壓縮包。

3. 下載完之后,按照https://github.com/google/protobuf/blob/master/src/README.md說明的步驟安裝:

4. 先安裝依賴(因以前安裝過,所以不需要再次安裝):

sudo apt-get install autoconf automake libtool curl make g++ unzip

5. 在終端中依次運行如下命令(只針對C++的安裝,其他的。。。我沒用過):

./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

160819更新:官網寫了,默認會安裝到/usr/local路徑下,但是/usr/local/lib不一定是系統路徑LD_LIBRARY_PATH的一部分,因而或者將/usr/local/lib增加到系統路徑LD_LIBRARY_PATH,或者指定安裝路徑。最好的就是指定安裝到/usr路徑(此時由於拷貝lib文件夾,實際上安裝到/usr/lib路徑),如下命令:

./configure --prefix=/usr

還有,如果以前有安裝過的話,現在想安裝到其他路徑,使用make clean清理一下原來的版本。

6. 安裝完之后,使用protoc --version查看版本,便是最新的2.6.1

==================================================================================================

160819更新:

今天用protoc --version,發現又變回了2.5.0,我。。。使用dpkg -L libprotobuf-dev,查找路徑,發現在/usr/lib/x86_64-linux-gnu里面還是有libprotobuf.so.8的一系列文件。卸載掉老版本的protocol后,使用sudo rm -rf強制刪除了這些文件(不清楚是否會有什么影響吧。。。),然后再次重新安裝2.6.0的版本。。。不知道以后還會出現什么問題。

160819更新jieshu

 

==================================================================================================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM