cmake 编译自动软件时出错:成员匹配非直接基类的函数

xytpbqjk  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(104)

我正在编译autoware.fundation工具,但是当我用https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/上的指令构建它时
我遇到了以下与qt 5 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;

(from(x、x、e、f、x)
有人能告诉我这个问题是我的qt版本问题,还是cmake文件源代码问题,还是balabala的问题?我该怎么解决?谢谢!

i2loujxw

i2loujxw1#

我找到了答案,我用conda安装了一些我认为必要的东西:QT和OpenSSL之间的连接。
conda安装的QT是5.9版本,其中QAbstractItemView::isPersistentEditorOpen还不可用,它是在5.10版本中添加的。

相关问题