在 centos 7 上编译 Qt 5.11.1 中的错误

Compile errors from Qt 5.11.1 on centos 7

本文关键字:错误 Qt centos 编译      更新时间:2023-10-16

在 CentOS 7 上安装 Qt 5.11.1 开源。我收到以下错误:

qwaylanddisplay.cpp: In member function ‘void QtWaylandClient::QWaylandDisplay::addRegistryListener(QtWaylandClient::RegistryListener, void*)’:
qwaylanddisplay.cpp:315:35: error: could not convert ‘{listener, data}’ from ‘<brace-enclosed initializer list>’ to ‘QtWaylandClient::QWaylandDisplay::Listener’
Listener l = { listener, data };
^
make[3]: *** [.obj/qwaylanddisplay.o] Error 1
make[3]: Leaving directory `/opt/Qt5.11.1/5.11.1/Src/qtwayland/src/client'
make[2]: *** [sub-client-make_first] Error 2
make[2]: Leaving directory `/opt/Qt5.11.1/5.11.1/Src/qtwayland/src'
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory `/opt/Qt5.11.1/5.11.1/Src/qtwayland'
make: *** [module-qtwayland-make_first] Error 2

这是一个初始安装的新系统。 我是否缺少库,或者这实际上是Qt的问题?

谢谢 杰瑞

是的,4.8.5-28听起来像是太旧的gcc版本。您可能需要切换到早几步的Qt版本。阅读 5.11 版本版本的 Qt 发行说明,查找开始需要完整 C++11 的版本。如果你想编写与 Centos 7 兼容的应用程序,我会坚持使用它提供的任何 Qt 版本(你需要自己部署的文件要少得多(。

但是如果你想要最新版本,那么你要么需要安装一个足够新的编译器,要么你需要在虚拟机(可能是Virtualbox(或容器(可能是Docker,尽管你必须跳过一两个额外的箍才能在屏幕上获得X11 GUI(中运行另一个操作系统(可能是最近的Fedora?(。