JARVIS-MoCap / JARVIS-AcquisitionTool

AcquisitionTool to record multi-camera recordings for the JARVIS 3D Markerless Pose Estimation Toolbox
https://jarvis-mocap.github.io/jarvis-docs/
GNU Lesser General Public License v2.1
19 stars 3 forks source link

Error on 'qdbusmessage.h' when building under Ubuntu 20.04 #17

Closed nukbridge closed 1 year ago

nukbridge commented 1 year ago

I tried several times with 'master' branch and 'v1.1' tag, but failed to build under my Ubuntu machine,

Errors occurred :

[ 97%] Building CXX object CMakeFiles/AcquisitionTool.dir/main.cpp.o [ 98%] Building CXX object CMakeFiles/AcquisitionTool.dir/AcquisitionTool_autogen/E47P2AXCJR/qrc_darkstyle.cpp.o In file included from /opt/spinnaker/include/SpinGenApi/Node.h:22, from /opt/spinnaker/include/SpinGenApi/SpinnakerGenApi.h:21, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/src/flirconfigbackend.hpp:15, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/main.cpp:12: /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusmessage.h:76:74: error: expected ‘,’ or ‘...’ before ‘struct’ 76 | static QDBusMessage createSignal(const QString &path, const QString &interface, | ^~~~~ /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusmessage.h:79:61: error: expected ‘,’ or ‘...’ before ‘struct’ 79 | const QString &interface, const QString &name); | ^~~~~ /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusmessage.h:81:57: error: expected ‘,’ or ‘...’ before ‘struct’ 81 | const QString &interface, const QString &method); | ^~~~~ In file included from /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusabstractinterface.h:49, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/QtDBus:6, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtGui/QtGuiDepends:4, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtGui/QtGui:3, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtCharts/QtChartsDepends:4, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtCharts/QtCharts:3, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/gui/acquisitionMode/latencychartview.hpp:17, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/gui/acquisitionMode/monitoringwindow.hpp:15, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/gui/acquisitionMode/acquisitionmode.hpp:18, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/gui/acquisitionMode/../mainwindow.hpp:13, from /home/master_node/src/_Git/JARVIS-AcquisitionTool/main.cpp:14: /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusmessage.h:99:22: error: expected identifier before ‘(’ token 99 | QString interface() const; | ^ /home/master_node/src/_Git/JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusmessage.h:99:23: error: expected unqualified-id before ‘)’ token 99 | QString interface() const; | ^ make[2]: [CMakeFiles/AcquisitionTool.dir/build.make:120: CMakeFiles/AcquisitionTool.dir/main.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:201: CMakeFiles/AcquisitionTool.dir/all] Error 2 make: *** [Makefile:136: all] Error 2

How can I fix this ?

Thanks,

JARVIS-MoCap commented 1 year ago

Hi,

This unfortunately is an issue with the version of the Qt library that we're currently using. The fix for it is to go into the `..../JARVIS-AcquisitionTool/libs/Qt/qt_install/include/QtDBus/qdbusmessage.h' file and change:

#if defined(Q_OS_WIN) && defined(interface)
#  undef interface
#endif

to

#  undef interface

I'm not sure what exactly the cause for this issue is, but this fix works for me. I hope this helps and please let me know if you have any other issues!