QGLViewer updateGL() function error

Bug #1735804 reported by James on 2017-12-01
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Yade
Undecided
Unassigned

Bug Description

Background Details:
CentOS 7.4
Compiled from source
All features installed and enabled (except for python GTS...could not find that one)

Issue:
When attempting to build Yade, this error occurs:

trunk-2017.01a/gui/qt5/GLViewer.cpp:298:11: error: ‘updateGL’ was not declared in this scope
  updateGL();

The way I solved this was by uncommenting line 64 in:

trunk-2017.01a/gui/qt5/GLViewer.hpp

so that "virtual void updateGL(void);" would be visible. I am not sure if that was originally commented out for debugging or deprecation, but it inhibited the program from compiling. If the comments were intentional, how would I fix the error otherwise?

Thanks,
   James

Janek Kozicki (cosurgi) wrote :

This is Interesting.

By examining the output of git blame cc7568a73 gui/qt4/GLViewer.hpp and git log cc7568a732 I see that Vaclav has commented out this line 8 years ago when migrating from QT3 to QT4. I wonder why you need to uncomment it back in QT5.

I tried doing this, and on my linux devuan ascii/ceres it did compile, but then yade would not start, and produce this error:

Welcome to Yade 2018-05-23.git-90e061d
Traceback (most recent call last):
  File "……/yade-trunk/bin/yade-2018-05-23.git-90e061d", line 129, in <module>
    import yade
  File "……/yade-trunk/lib/x86_64-linux-gnu/yade-2018-05-23.git-90e061d/py/yade/__init__.py", line 65, in <module>
    import boot
ImportError: ……/yade-trunk/lib/x86_64-linux-gnu/yade-2018-05-23.git-90e061d/py/yade/qt/_GLViewer.so: undefined symbol: _ZN8GLViewer8updateGLEv

So there is more to investigate here before we find a solution for this.

I don't know why it would work for you, to be honest, because uncommenting this line is just creating a function declaration without a function body. I mean: The error that I pasted above has a reasonable explanation, it is because the uncommented line was:

virtual void updateGL(void);

and not:

virtual void updateGL(void) { /* function body */ };

So it did compile, but when starting yade, there was no function body to execute. Thus I don't know why it worked for you :)

Changed in yade:
status: New → Incomplete
Suhail Tandel (standel) wrote :

I am compiling trunk-2018.02b and getting the same error as James. I can compile by uncommenting the line

virtual void updateGL(void)

in trunk-2018.02b/gui/qt5/GLViewer.hpp but yade does not start and produces the following error as Janek explained.
--------------------------------
Welcome to Yade 2018.02b
Traceback (most recent call last):
  File "...../myyade/install/bin/yade", line 129, in <module>
    import yade
  File "....../myyade/install/lib64/yade-2018.02b/py/yade/__init__.py", line 65, in <module>
    import boot
ImportError: /home/subbiah/myyade/install/lib64/yade-2018.02b/py/yade/qt/_GLViewer.so: undefined symbol: _ZN8GLViewer8updateGLEv
--------------------------------

Has there been any update on this issue.

Details
Scientific Linux release 6.7 (Carbon)
gcc 4.8.1
qt5 5.10.1
libQGLViewer 2.7.1

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers