1

I'm trying to solve the famous protobuf version error (see below), when compiling paraview and Qt under Linux (Ubuntu 17.10).

This program requires version 3.0.0 of the Protocol Buffer runtime 
library, but the installed version is 2.3.0.  Please update your 
library.  If you compiled the program yourself, make sure that your 
headers are from the same version of Protocol Buffers as your link-time 
library.

In order to develop a plugin that is compatible with the binaries from the webpage, I want to compile paraview with Qt-5.8. Therefore, I downloaded the sources using the Qt download scripts. I did sucessfully compile Qt, but because I get the above error, when compiling and running paraview, I assume that Qt did not use the system version of protobuf, which would be 3.0, but rather the built-in version.

As far as I foudn out, the build scripts evaluate, whether or not to use the system protobuf version (e.g. in qtwebengine/src/core/config/linux.pri:65).

Is there a way, to check, which protobuf version was used to compile Qt? Can I enforce it somehow? I assumed that if the libprotobuf-dev package is installed, it would be detected, but I don't know of a way, how to check this.

I'm aware of similar questions on this site (e.g. link), but the answers therein did not solve my problem yet.

engineer
  • 179
  • 1
  • 4
  • 10

1 Answers1

1

This is already documented in ParaView issue tracker.

There is two solutions so far :

  1. Build you own Qt
  2. Use the following work around :
    • Extract/Install a binary version of Qt somewhere, make sure to have only one on your computer to avoid any kind of conflicts
    • remove /opt/Qt/5.9/gcc_64/plugins/platformthemes/libqgtk3.so
    • edit and comment out /opt/Qt/5.9/gcc_64/lib/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake
    • reboot computer
    • start paraview
Mathieu Westphal
  • 2,544
  • 1
  • 19
  • 33