安装多个版本时使用特定的 protobuf 版本

Use specific protobuf version when multiple versions are installed

我正在尝试编译 PX4, according to PX4's instructions 提供的凉亭示例。我正在 Ubuntu-18.04.

当运行命令:make px4_sitl gazebo时,出现以下错误:

...
In file included from Range.pb.h:27:0,
                 from Range.pb.cc:5:
/usr/include/gazebo-9/gazebo/msgs/quaternion.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
  ^~~~~
/usr/include/gazebo-9/gazebo/msgs/quaternion.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
 #error incompatible with your Protocol Buffer headers.  Please update
  ^~~~~
/usr/include/gazebo-9/gazebo/msgs/quaternion.pb.h:14:2: error: #error your headers.
 #error your headers.
  ^~~~~
...

将错误消息拼凑起来得到:此文件是由与您的 Protocol Buffer 不兼容的较新版本的 protoc 生成的 headers。请更新您的 headers.

我的机器上有两个不同的 protoc 二进制文件:

如何确保使用第一个版本?我试过这个:export PATH=/usr/bin:$PATH 以确保首先找到正确的编译器,但我可能还需要指示使用正确的 headers,因此 /usr/include/google/protobuf 中的编译器而不是 [=17] =].但是,我不确定如何进行。

好的,所以简单地使错误的路径无效(修改它)迫使make使用正确的编译器版本,因为它再也找不到错误的版本了。

奇怪的是,将正确版本的路径放在PATH变量中似乎没有任何效果。