Protobuf compiler version 3.19.1 doesn‘t match library version 3.0.0

报错信息

CMake Warning at /usr/share/cmake-3.10/Modules/FindProtobuf.cmake:455 (message):
  Protobuf compiler version 3.19.1 doesn't match library version 3.0.0
Call Stack (most recent call first):
  tools/onnx/CMakeLists.txt:2 (find_package)

在cmake时报错,显示protobuf编译器版本3.19.1不匹配库文件版本3.0.0。

  1. 终端输入whereis protoc查看哪些路径下安装了protobuf
  2. which protoc查看当前默认的protobuf
  3. protoc --version查看当前默认的protobuf的版本
  4. sudo protoc --version查看当前默认的系统级protobuf版本

在这里插入图片描述可以看到默认的系统级版本是3.0.0,而默认的版本是3.19.1,所以发生冲突,应该将默认Path设置为系统级版本。

解决方法

查看PATH变量,发现anaconda3比系统变量更靠近,我们将系统变量导入进去,再次查看当前默认版本,发现更新为3.0.0了。

(base) dzh@dzh-Lenovo-Legion-Y7000:~$ echo $PATH
/home/dzh/anaconda3/bin:/home/dzh/anaconda3/condabin:/opt/ros/melodic/bin:/opt/Qt5.9.0/5.9/gcc_64/bin:/home/dzh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

(base) dzh@dzh-Lenovo-Legion-Y7000:~$ export PATH=/usr/bin:$PATH

(base) dzh@dzh-Lenovo-Legion-Y7000:~$ echo $PATH
/usr/bin:/home/dzh/anaconda3/bin:/home/dzh/anaconda3/condabin:/opt/ros/melodic/bin:/opt/Qt5.9.0/5.9/gcc_64/bin:/home/dzh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

(base) dzh@dzh-Lenovo-Legion-Y7000:~$ protoc --version
libprotoc 3.0.0

猜你喜欢

转载自blog.csdn.net/qq_42257666/article/details/130240441
今日推荐