Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QOpenGLFunctions_3_2_Core problems on ARM Platforms



  • Hi everyone.
    I've trying to compile COLMAP (a photogrammetry application) over a Jetson Nano development Kit (ARM based SOC).
    It gives me the next error:
    Scanning dependencies of target colmap
    [ 54%] Building CXX object src/CMakeFiles/colmap.dir/ui/automatic_reconstruction_widget.cc.o
    In file included from /home/dani/colmap/src/ui/main_window.h:51:0,
    from /home/dani/colmap/src/ui/automatic_reconstruction_widget.cc:33:
    /home/dani/colmap/src/ui/model_viewer_widget.h:55:63: error: expected class-name before ‘{’ token
    protected QOpenGLFunctions_3_2_Core {

    ^
    src/CMakeFiles/colmap.dir/build.make:1718: recipe for target 'src/CMakeFiles/colmap.dir/ui/automatic_reconstruction_widget.cc.o' failed
    make[2]: *** [src/CMakeFiles/colmap.dir/ui/automatic_reconstruction_widget.cc.o] Error 1
    CMakeFiles/Makefile2:1000: recipe for target 'src/CMakeFiles/colmap.dir/all' failed
    make[1]: *** [src/CMakeFiles/colmap.dir/all] Error 2
    Makefile:129: recipe for target 'all' failed
    make: *** [all] Error 2

    I thought that it could be an error from the source code, although it compiles without problems on a linux 18.04 x64 arch.
    So I tried with other programs using QOpenGLFunctions_3_2_Core for example https://github.com/dalboris/minimal-qt-opengl-sketch-app.git, and I get similar errors:
    g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtOpenGL -isystem /usr/include/arm-linux-gnueabihf/qt5/QtWidgets -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -I. -I/usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -o main.o main.cpp
    In file included from main.cpp:1:0:
    OpenGLWidget.h:13:9: error: ‘QOpenGLFunctions_3_2_Core’ does not name a type
    typedef QOpenGLFunctions_3_2_Core OpenGLFunctions;

    ^~~~~~~~~~~~~~~~~~~~~~~~~
    OpenGLWidget.h:31:5: error: ‘OpenGLFunctions’ does not name a type
    OpenGLFunctions * openGLFunctions() const;
    ^~~~~~~~~~~~~~~
    Makefile:334: recipe for target 'main.o' failed
    make: *** [main.o] Error 1

    At last, for being sure that it was not a problem with the Jetson Nano image (a modified ubuntu 18.04 linux) I tried to compile on a Raspberry Pi 3, running Raspbian stretch, with the same results.

    So, my questions are:
    Does anybody know if there is any problem/bug/ limitation using QOpenGLFunctions_3_2_Core on ARM platforms?
    Does anybody know how to solve it?

    Thanks in advance,
    Dani


  • Lifetime Qt Champion

    @dxpolo Maybe the device you're building for does not support OpenGL 3.2?



  • @dxpolo were you able to find a solution to this problem? I am facing the exact same issue.



  • @jsulm the Jetson Nano has OpenGL 4.6:

    khaled@jetson-nano:~/Repositories/colmap/build$ glxinfo | grep "OpenGL version"
    OpenGL version string: 4.6.0 NVIDIA 32.2.3
    

Log in to reply