[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 -
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).
-
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' -
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.
-
I'm happy to hear that. Happy coding with Qt5 :)