Qt World Summit: Register Today!

[SOLVED] Building Qt5 under LUbuntu 64bit failed.

  • Hi Guys

    I tried to build qt5 from git according to the instruction but it failed with this error.
    Any ideas? Thanks for the help.

    make[2]: Betrete Verzeichnis '/usr/local/build/qt5/qtbase/src/dbus'
    g++ -c -m64 -pipe -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -g -std=c++0x -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fno-exceptions -fPIC -DQT_COMPILER_SUPPORTS_SSE2 -DQT_COMPILER_SUPPORTS_SSE3 -DQT_COMPILER_SUPPORTS_SSSE3 -DQT_COMPILER_SUPPORTS_SSE4_1 -DQT_COMPILER_SUPPORTS_SSE4_2 -DQT_COMPILER_SUPPORTS_AVX -DQT_COMPILER_SUPPORTS_AVX2 -DDBUS_API_SUBJECT_TO_CHANGE -DQT_BUILD_DBUS_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_CORE_LIB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++-64 -I. -I../../include -I../../include/QtDBus -I../../include/QtDBus/5.0.0 -I../../include/QtDBus/5.0.0/QtDBus -I../../include/QtCore -I../../include/QtCore/5.0.0 -I../../include/QtCore/5.0.0/QtCore -I.moc/debug-shared -o .obj/debug-shared/qdbusabstractinterface.o qdbusabstractinterface.cpp
    g++ -c -m64 -pipe -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -g -std=c++0x -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fno-exceptions -fPIC -DQT_COMPILER_SUPPORTS_SSE2 -DQT_COMPILER_SUPPORTS_SSE3 -DQT_COMPILER_SUPPORTS_SSSE3 -DQT_COMPILER_SUPPORTS_SSE4_1 -DQT_COMPILER_SUPPORTS_SSE4_2 -DQT_COMPILER_SUPPORTS_AVX -DQT_COMPILER_SUPPORTS_AVX2 -DDBUS_API_SUBJECT_TO_CHANGE -DQT_BUILD_DBUS_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_CORE_LIB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++-64 -I. -I../../include -I../../include/QtDBus -I../../include/QtDBus/5.0.0 -I../../include/QtDBus/5.0.0/QtDBus -I../../include/QtCore -I../../include/QtCore/5.0.0 -I../../include/QtCore/5.0.0/QtCore -I.moc/debug-shared -o .obj/debug-shared/qdbusinternalfilters.o qdbusinternalfilters.cpp
    qdbusinternalfilters.cpp: In function ‘QString qDBusIntrospectObject(const QDBusConnectionPrivate::ObjectTreeNode&, const QString&)’:
    qdbusinternalfilters.cpp:124:36: error: inconsistent user-defined literal suffixes ‘DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER’ and ‘DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER’ in string literal
    qdbusinternalfilters.cpp:124:36: error: unable to find string literal operator ‘operator"" DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER’
    make[2]: *** [.obj/debug-shared/qdbusinternalfilters.o] Fehler 1
    make[2]: Verlasse Verzeichnis '/usr/local/build/qt5/qtbase/src/dbus'
    make[1]: *** [sub-dbus-install_subtargets] Fehler 2
    make[1]: Verlasse Verzeichnis '/usr/local/build/qt5/qtbase/src'
    make: *** [sub-src-install_subtargets] Fehler 2
    'cd qtbase && make install failed: 512
    Fatal failure installing qtbase at ./build line 455
    Qt::Build::build_project('Qt::Build=HASH(0xc911a0)', 'qtbase') called at ./build line 484
    Qt::Build::build_qt('Qt::Build=HASH(0xc911a0)') called at ./build line 544
    Qt::Build::run('Qt::Build=HASH(0xc911a0)') called at ./build line 553

  • Moderators

    You probably use GCC 4.7? I had the same problem recently. Either use an older GCC (4.6), or compile Qt without C++11 support (add -no-c++11 to configure, additionally you can try setting env variable "CXXFLAGS="-std=c++0x"", just to be 100% sure).

  • Thanks a lot. I will check that.

  • I had a softlink to to g++-4.7. Ic receive this error message after changing back to 4.6

    make[2]: Betrete Verzeichnis '/usr/local/build/qt5/qtbase/src/gui'
    rm -f libQtGui.so.5.0.0 libQtGui.so libQtGui.so.5 libQtGui.so.5.0
    g++ -m64 -Wl,--no-undefined -Wl,-rpath-link,/usr/local/build/qt5/qtbase/lib -Wl,-rpath,/usr/local/build/qt5/qtbase/lib -Wl,-rpath,/usr/local/build/qt5/qtbase/lib -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQtGui.so.5 -o libQtGui.so.5.0.0 .obj/debug-shared/qimage_sse2.o .obj/debug-shared/qdrawhelper_sse2.o .obj/debug-shared/qimage_ssse3.o .obj/debug-shared/qdrawhelper_ssse3.o .....
    .obj/debug-shared/moc_qopenglshaderprogram.o .obj/debug-shared/moc_qopenglengineshadermanager_p.o -L/usr/X11R6/lib64 -L/usr/local/build/qt5/qtbase/lib -lQtCore -lpthread -lpng -lz -lGL
    image/qpnghandler.cpp:545: error: undefined reference to 'png_set_longjmp_fn'
    image/qpnghandler.cpp:573: error: undefined reference to 'png_set_longjmp_fn'
    image/qpnghandler.cpp:827: error: undefined reference to 'png_set_longjmp_fn'

  • Moderators

    Huh, this one is new to me. Probably a bug.

    This seems to be an include problem, make sure you have all dependencies (I'm not familiar with internal parts of Qt's PNG plugin, but it might depend on something like libpng or else). If that does not work, try checking out the newest sources, cleaning and recompiling. If you already are on newest sources, there are many options: check out master branches in relevant modules (QtGui in this case, probably), and compiling that. If there will be still no progress, try checking out some older commit. Sadly, this is the price we have to pay for trying to use an unreleased framework ;)

    Of course, if you verify this as a bug, you can also ping Qt devs so that they know and/ or submitt a fix to gerrit.

  • Problem solved. Used the option -qt-libpng

  • Moderators

    I'm happy to hear that. Happy coding with Qt5 :)

  • BTW with LUbuntu32 it worked out of the box. Only with the 64bit version I had to use the system libpng

Log in to reply