编译autoware时出错:成员匹配非直接基类的函数



我正在编译autoware.fundation工具,但当我使用https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/

我陷入了以下与qt5 lib文件相关的错误:

In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QTableWidget:1,
from /home/zhangchg/autoware/src/universe/autoware.universe/common/tier4_traffic_light_rviz_plugin/src/traffic_light_publish_panel.hpp:24,
from /home/zhangchg/autoware/build/tier4_traffic_light_rviz_plugin/tier4_traffic_light_rviz_plugin_autogen/UVLADIE3JM/moc_traffic_light_publish_panel.cpp:9,
from /home/zhangchg/autoware/build/tier4_traffic_light_rviz_plugin/tier4_traffic_light_rviz_plugin_autogen/mocs_compilation.cpp:2:
/usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtablewidget.h:265:23: error: no members matching ‘QTableView::isPersistentEditorOpen’ in ‘class QTableView’
265 |     using QTableView::isPersistentEditorOpen;
|                       ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QTableWidget:1,
from /home/zhangchg/autoware/src/universe/autoware.universe/common/tier4_traffic_light_rviz_plugin/src/traffic_light_publish_panel.hpp:24,
from /home/zhangchg/autoware/src/universe/autoware.universe/common/tier4_traffic_light_rviz_plugin/src/traffic_light_publish_panel.cpp:17:
/usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtablewidget.h:265:23: error: no members matching ‘QTableView::isPersistentEditorOpen’ in ‘class QTableView’
265 |     using QTableView::isPersistentEditorOpen;
|                       ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/tier4_traffic_light_rviz_plugin.dir/build.make:63: CMakeFiles/tier4_traffic_light_rviz_plugin.dir/tier4_traffic_light_rviz_plugin_autogen/mocs_compilation.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....

源代码的一个片段是

void editItem(QTableWidgetItem *item);
void openPersistentEditor(QTableWidgetItem *item);
void closePersistentEditor(QTableWidgetItem *item);
using QAbstractItemView::isPersistentEditorOpen;
bool isPersistentEditorOpen(QTableWidgetItem *item) const;

(来自https://code.qt.io/cgit/qt/qtbase.git/tree/src/widgets/itemviews/qtablewidget.h?h=5.12.8)

有人能告诉我这个问题是由我的qt版本、cmake文件的源代码还是balabala引起的吗?我该怎么修?非常感谢!

我找到了答案。我用conda安装了一些我认为必要的东西:QT和OpenSSL。

conda安装的QT为5.9,其中QAbstractItemView::isPersistentEditorOpen尚不可用。它是在版本5.10中添加的。

最新更新