編譯cartographer時遇到Unrecognized syntax identifier “proto3”. This parser only recognizes “proto2”.
排查:
使用 protoc --version 指令查看protobuf的版本,若版本為3.0.0以下,則需要到git上下載最新版protobuf,編譯安裝就好。
若顯示protobuf版本為3.0.0以上,仍然報這個錯誤,則可能是同時安裝了proto2,編譯器優先找了/usr/bin/protoc的版本, 新安裝的proto3是放在/usr/local/bin/protoc下的,可以刪除/usr/bin/protoc,然后把/usr/local/bin/protoc放入/usr/bin目錄下,或者建立軟連接:
sudo mv /usr/bin/protoc /usr/bin/protoc.bk
sudo ln -s /usr/local/bin/protoc /usr/bin/protoc
參考:
https://blog.csdn.net/weixin_43707303/article/details/89015920