gpt4 book ai didi

linux - 强制QT使用系统protobuf版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:56 27 4
gpt4 key购买 nike

在 Linux (Ubuntu 17.10) 下编译 paraview 和 Qt 时,我正在尝试解决著名的 protobuf 版本错误(见下文)。

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.

为了开发一个兼容网页二进制文件的插件,我想用Qt-5.8编译paraview。因此,我使用 Qt 下载脚本下载了源代码。我确实成功编译了Qt,但是因为出现了上面的错误,在编译运行paraview的时候,我假设Qt没有使用系统版本的protobuf,应该是3.0,而是内置版本。

据我所知,构建脚本会评估是否使用系统 protobuf 版本(例如在 qtwebengine/src/core/config/linux.pri:65 中)。

有没有办法检查使用哪个 protobuf 版本来编译 Qt?我能以某种方式强制执行吗?我假设如果安装了 libprotobuf-dev 包,它会被检测到,但我不知道如何检查它。

我知道这个网站上有类似的问题(例如 link ),但其中的答案还没有解决我的问题。

最佳答案

这已记录在 ParaView issue tracker 中.

目前有两种解决方案:

  1. 构建你自己的 Qt
  2. 使用以下解决方法:
    • 在某处提取/安装 Qt 的二进制版本,确保您的计算机上只有一个,以避免任何类型的冲突
    • 删除/opt/Qt/5.9/gcc_64/plugins/platformthemes/libqgtk3.so
    • 编辑并注释掉/opt/Qt/5.9/gcc_64/lib/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake
    • 重启电脑
    • 开始预览

关于linux - 强制QT使用系统protobuf版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com