help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Installing Octave-4.0.0 on CentOS yields QtOpenGL linking error


From: cat eat dog
Subject: Installing Octave-4.0.0 on CentOS yields QtOpenGL linking error
Date: Thu, 3 Sep 2015 07:07:27 -0700 (PDT)

I am in the process of trying to install Octave-4.0.0 on a CentOS 6 cluster. 
`yum` only has Octave-3.4.3, so I installed Octave-3.4.3 from `yum` with the
hope that it would get the majority of dependencies right. I also installed
(via `yum`) 

    arpack-devel-3.1.3-1.el6.x86_64 
    fltk-devel-1.1.10-1.el6.x86_64 
    gl2ps-devel-1.3.5-1.el6.x86_64 
    glpk-devel-4.40-1.1.el6.x86_64 
    qhull-devel-2003.1-14.el6.x86_64 
    qrupdate-devel-1.1.2-1.el6.x86_64 
    qscintilla-devel-2.4-1.el6.x86_64 
    suitesparse-devel-3.4.0-9.el6.x86_64 

and from source 

    pcre-8.36 

I run auto config : 

    ./configure JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64/" 
CPPFLAGS="-I/home/path/to/user/local/include" 
--prefix=/home/path/to/user/local/ 
--with-blas=/usr/lib64/atlas/libf77blas.so.3
--with-lapack=/usr/lib64/atlas/liblapack.so.3 

It seems to find things fine and then when I run `make` it takes about 30
minutes to compile and then fails with : 

    . 
    . 
    . 
    make[2]: Entering directory
/gpfs0/home/path/to/user/local/src/octave-4.0.0/src' 
    CXX      octave_gui-main-gui.o 
    CXXLD    octave-gui 
    /usr/lib64/libQtOpenGL.so.4: undefined reference to
'QWidgetPrivate::checkWindowRole()'` 
    /usr/lib64/libQtOpenGL.so.4: undefined reference to
'QPaintEngineEx::drawPixmaps(QDrawPixmaps::Data const*, int, QPixmap const&,
QFlags<QDrawPixmaps::DrawingHint>)' 
    /usr/lib64/libQtOpenGL.so.4: undefined reference to
'QTextureGlyphCache::populate(QTextItemInt const&, QVarLengthArray<unsigned
int, 256> const&, QVarLengthArray<QFixedPoint, 256> const&)' 
    /usr/lib64/libQtNetwork.so.4: undefined reference to
'QObjectPrivate::checkWindowRole()' 
    collect2: error: ld returned 1 exit status 
    make[2]: *** [octave-gui] Error 1 
    make[2]: Leaving directory
'/gpfs0/home/path/to/user/local/src/octave-4.0.0/src' 
    make[1]: *** [all-recursive] Error 1 
    make[1]: Leaving directory
'/gpfs0/home/path/to/user/local/src/octave-4.0.0' 
    make: *** [all] Error 2 

In the Makefile generated by auto conf it appears that it should be linking
to the Qt libraries correctly, i.e. 

    . 
    . 
    . 
    QT_CFLAGS = -DQT_SHARED -I/usr/include/QtCore -I/usr/include/QtGui
-I/usr/include/QtNetwork -I/usr/include/QtOpenGL 
    QT_CPPFLAGS = -I/usr/include/QtCore -I/usr/include/QtGui
-I/usr/include/QtNetwork -I/usr/include/QtOpenGL 
    QT_LDFLAGS = 
    QT_LIBS = -lQtNetwork -lQtOpenGL -lQtGui -lQtCore   -lqscintilla2 
    . 
    . 
    . 

In /usr/lib64/ I checked the contents of the Qt libraries 

    $ for i in *Qt*.so.4.6.2; do echo $i; nm -C -D $i | grep -i
checkWindowRole; done 
    libQt3Support.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
                     U QWidgetPrivate::checkWindowRole() 
    libQtAssistantClient.so.4.6.2 
    libQtCLucene.so.4.6.2 
    libQtCore.so.4.6.2 
    00000000001657b0 T QObjectPrivate::checkWindowRole() 
    libQtDBus.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    libQtDesignerComponents.so.4.6.2 
    libQtDesigner.so.4.6.2 
    libQtGui.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    00000000002388f0 T QWidgetPrivate::checkWindowRole() 
    libQtHelp.so.4.6.2 
    libQtMultimedia.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    libQtNetwork.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    libQtOpenGL.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
                     U QWidgetPrivate::checkWindowRole() 
    libQtScript.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    libQtScriptTools.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
                     U QWidgetPrivate::checkWindowRole() 
    libQtSql.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    libQtSvg.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
                     U QWidgetPrivate::checkWindowRole() 
    libQtTest.so.4.6.2 
    libQtXmlPatterns.so.4.6.2 
                     U QObjectPrivate::checkWindowRole() 
    libQtXml.so.4.6.2 

And it appears that `QWidgetPrivate::checkWindowRole()` is declared (if I'm
interpreting `nm` correctly?) within `libQtGui.so.4.6.2`.  This library is
already linked to (see above) 

QUESTION : How to I get Octave-4.0.0 to compile and fix this issue?



--
View this message in context: 
http://octave.1599824.n4.nabble.com/Installing-Octave-4-0-0-on-CentOS-yields-QtOpenGL-linking-error-tp4672438.html
Sent from the Octave - General mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]