Qt5 development primer
-
Thanks. Verbose helped.
Here is my installed xcb-package list:
extra/libxcb
extra/xcb-proto
extra/xcb-util
extra/xcb-util-image
extra/xcb-util-keysyms
extra/xcb-util-renderutil
extra/xcb-util-wm -
Hello again. I have a new error:
@cd qtsvg/ && make -f Makefile
make[1]: Entering directory/media/data/Additional/Sources/qt5/qtsvg' /media/data/Additional/Sources/qt5/qtbase/bin/qmake QMAKE_ABSOLUTE_SOURCE_PATH=/media/data/Additional/Sources/qt5/qtbase -o Makefile qtsvg.pro QMAKESPEC has not been set, so configuration cannot be deduced. Error processing project file: qtsvg.pro make[1]: *** [Makefile] Error 3 make[1]: Leaving directory
/media/data/Additional/Sources/qt5/qtsvg'
make: *** [module-qtsvg-make_default] Error 2@But all other moduls are build well. Error appears after hour of compilation, not at start.
-
Okay it was probably all broken before as i hadn't installed the right prerequisites (the ubuntu 11.10 prerequisite had not been added to the instructions).
i.e.
[code]on Ubuntu Oneiric:sudo apt-get install libxcb.* libglu1-mesa-dev[/code]
as oppossed to:
[code]on Ubuntu/Debian:sudo aptitude install ~nlibxcb.*
[/code]
I now get this error on compilation:
[code]In file included from ../3rdparty/freetype/src/autofit/autofit.c:23:0:
../3rdparty/freetype/src/autofit/afhints.c: In function ‘af_glyph_hints_reload’:
../3rdparty/freetype/src/autofit/afhints.c:642:21: warning: variable ‘first’ set but not used [-Wunused-but-set-variable]
g++ -c -include .pch/debug-shared/QtPlatformSupport -pipe -g -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_NO_WAYLAND -DQT_NO_CORESERVICES -DQT_BUILD_PLATFORMSUPPORT_LIB -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_NO_CAST_FROM_ASCII -DQT_COMPILES_IN_HARFBUZZ -DQT_NO_FONTCONFIG -DFT2_BUILD_LIBRARY -DQT_COMPILES_IN_HARFBUZZ -DQT_GUI_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_HAVE_SSE3 -DQT_HAVE_SSSE3 -DQT_HAVE_SSE4_1 -DQT_HAVE_SSE4_2 -DQT_HAVE_AVX -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include/QtCore -I../../include/QtCore/5.0.0 -I../../include/QtCore/5.0.0/QtCore -I../../include/QtGui/5.0.0 -I../../include/QtGui/5.0.0/QtGui -I../../include/QtGui -I../../include -I../../include/QtPlatformSupport/5.0.0 -I../../include/QtPlatformSupport/5.0.0/QtPlatformSupport -I../../include/QtPlatformSupport -I../../include -I.rcc/debug-shared -I../3rdparty/harfbuzz/src -I../3rdparty/freetype/builds/unix -I../3rdparty/freetype/src -I../3rdparty/freetype/include -I/usr/X11R6/include -I.moc/debug-shared -o .obj/debug-shared/qglxconvenience.o glxconvenience/qglxconvenience.cpp
glxconvenience/qglxconvenience.cpp:47:36: fatal error: X11/extensions/Xrender.h: No such file or directory
compilation terminated.
make[2]: *** [.obj/debug-shared/qglxconvenience.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory/home/daniel/qt5/qtbase/src/platformsupport' make[1]: *** [sub-platformsupport-make_default-ordered] Error 2 make[1]: Leaving directory
/home/daniel/qt5/qtbase'
make: *** [module-qtbase-make_default] Error 2
[/code]So i was trying to work out what i was missing in terms of dependencies. Considering i installed libglu1-mesa-dev i am not sure.
-
[quote author="werispaul" date="1328263852"]Actually i'm trying to compile the current git master using Win 7 and VS2010 without success.[/quote]
Finally got it working. In between I've switched from Strawberry Perl to ActivePerl. I'm not sure if it was the crux, but an option to keep in mind (as well as the order of perl in the system PATH, saw the wiki note quite late). -
Let me join the ranks of people, for whom building Qt5 has failed.
Using gcc 4.6.2 in Windows 7 x64 environment.
The last console output before building failed (after spending 3 hours on it :( )
bq. mingw32-make[3]: Leaving directory
C:/Users/Dian/qt5/qtbase/src/widgets' mingw32-make[2]: Leaving directory
C:/Users/Dian/qt5/qtbase/src/widgets'
cd src\testlib\ && mingw32-make -f Makefile
mingw32-make[2]: Entering directoryC:/Users/Dian/qt5/qtbase/src/testlib' mingw32-make -f Makefile.Debug all mingw32-make[3]: Entering directory
C:/Users/Dian/qt5/qtbase/src/testlib'
g++ -c -fno-keep-inline-dllexport -g -Wall -frtti -fexceptions -mthreads -DQT_SH
ARED -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_AS
CII -DQTESTLIB_MAKEDLL -DQT_NO_DATASTREAM -DQT_MAKEDLL -DQT_ASCII_CAST_WARNINGS
-DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -D_USE_MATH_DEFINES -DQT_DLL -DQT_CORE_L
IB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -
I"....\include\QtCore" -I"....\include" -I"." -I"....\include\QtTest\5.0.0" -
I"....\include\QtTest\5.0.0\QtTest" -I"....\include\QtTest" -I"....\include"
-I"tmp\rcc\debug_shared" -I"tmp" -I"tmp\moc\debug_shared" -I"....\mkspecs\win32
-g++" -o tmp\obj\debug_shared\qtestcase.o qtestcase.cpp
qtestcase.cpp:73:21: fatal error: crtdbg.h: No such file or directory
compilation terminated.
mingw32-make[3]: *** [tmp/obj/debug_shared/qtestcase.o] Error 1
mingw32-make[3]: Leaving directoryC:/Users/Dian/qt5/qtbase/src/testlib' mingw32-make[2]: *** [debug-all] Error 2 mingw32-make[2]: Leaving directory
C:/Users/Dian/qt5/qtbase/src/testlib'
mingw32-make[1]: *** [sub-testlib-make_default-ordered] Error 2
mingw32-make[1]: Leaving directory `C:/Users/Dian/qt5/qtbase'
mingw32-make: *** [module-qtbase-make_default] Error 2Any ideas?
The missing file I actually do have on my PC, in:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\crtdbg.h
But what does it have to do with anything, since I am using the GCC toolchain?Also, when I configured Qt I used "-nomake tests" - shouldn't that result in skipping qttest?
-
git clone git://gitorious.org/qt/qt5.git qt5
"Building Qt5 from Git.":http://developer.qt.nokia.com/wiki/Building_Qt_5_from_Git
-
@oneWonders: I just updated the package dependencies on the wiki, hope all are listed now (it's not that often that one has a clean system to start on ;)
@werispaul: Yes, you need ActiveState perl, and actually also a recent version. But the wiki page already points that out...
@ddriver: No idea. All I can tell you is that most people developing Qt on Windows are using MSVC compilers (MSVC2008, MSVC2010).
-
Yes, it seems I will have to give it another go using MSVC2010, I am really itching to play a bit with QtQuick 2 :)
EDIT: ARGHHHHHHHHHHH ^%$^@#$@
Naturally, after wasting a ton of time the webkit failed, and just to make things even more irritating, when I configure with -no-webkit it says "Unknown option -no-webkit" even thou -no-webkit is listed in the configure options... WTH?Also "nmake confclean" doesn't work, returns "NMAKE : fatal error U1073: don't know how to make 'confclean'"
Also, I tried installing ICU so I can build webkit since the configure utility option doesn't work, and the install procedure for ICU involves files that are not even present in the package.
I am so very, very angry I hardly contain from beating my hardware, even thou this is all the lousy software's fault...
I get it that it is free software, prior to final stage, but can it really be that bad? I have build Qt from sources donzes of times and different versions, and it was always effortless.
-
I will add my failure to this thread.
I managed to compile Qt without too many problems by specifying the -prefix ${ROOT}/qtbase (or -developer-build, to be exact). If I remember correctly, with the -developer-build, I still had some installation issues once qtbase passed. I ended up having to manually run install for each submodule...
However, when trying to build for the target platform, with -prefix /usr/lib/qt, as I want it on the target, I run into an error once qtbase is built:
@
cd qtsvg/ && make -f Makefile
make[1]: Entering directory/home/pvr/qt5-build-neon/qtsvg' cd src/ && /home/pvr/qt5-build-neon/qtbase/bin/qmake /home/pvr/qt5/qtsvg/src/src.pro QMAKE_ABSOLUTE_SOURCE_PATH=/home/pvr/qt5/qtbase -o Makefile QMAKESPEC has not been set, so configuration cannot be deduced. Error processing project file: /home/pvr/qt5/qtsvg/src/src.pro make[1]: *** [src/Makefile] Error 3 make[1]: Leaving directory
/home/pvr/qt5-build-neon/qtsvg'
make: *** [module-qtsvg-make_default] Error 2
@So I tried exporting QMAKESPEC as the path to my mkspec, but then I get the following error:
@
cd svg/ && /home/pvr/qt5-build-neon/qtbase/bin/qmake /home/pvr/qt5/qtsvg/src/svg/svg.pro
QMAKE_ABSOLUTE_SOURCE_PATH=/home/pvr/qt5/qtbase -o Makefile
Project ERROR: Cannot load qmodule.pri!
make[2]: *** [svg/Makefile] Error 2
make[2]: Leaving directory/home/pvr/qt5-build-neon/qtsvg/src' make[1]: *** [module-qtsvg-src-make_default] Error 2 make[1]: Leaving directory
/home/pvr/qt5-build-neon/qtsvg'
make: *** [module-qtsvg-make_default] Error 2
@So my question is essentially, is it obligatory to specify the prefix as the path to qtbase? Has anyone else managed to build qt with a different prefix?
edit:
I should add that I am cross-compiling from x86 to an ARM board (iMX515). I built Qt4.8 with no problems previously... -
@Yuchen: I don't know about ICU on Windows, but I do know that you can just build Qt without webkit by deleting / renaming qtwebkit, qtwebkit-examples-and-demos directories, and then re-running configure. Maybe you don't need it after all?
-
@kkoehne : Thanks for reply!
I need to build QWebKit, Because I want build QtCreator use Qt5.
But after try and try, and the final, I don't have any idea how to add ICU library for QWebKit.
And I find a way to build Qt5 when use another prefix.Step1:
set PATH= -
@kkoehne : Thanks for reply!
I need to build QWebKit, Because I want build QtCreator use Qt5.
But after try and try, and the final, I don't have any idea how to add ICU library for QWebKit.
And I find a way to build Qt5 when use another prefix.Step1:
set PATH...
set QTDIR...
Same the wiki.Step2:
configure -confirm-license -opensource -prefix D:\qpSOFT\DEVx86\qt5 -release -platform win32-msvc2010 -fast -no-stl -nomake examples -nomake tests
(QtSrcDir = D:\qpSOFT\Sources\Qt5)Step3:
nmake module-qtbase && nmake module-qtbase-install_subtargetsStep4:
nmake && nmake installThe meaning is we should install qtbase to prefix first.
Then we can build other module.Any tips or hits about How To Build QWebkit on Windows?
Thanks!! -
@Yuchen: Thanks for the tip on installing qtbase first. It works, but I don't understand why this is necessary. I am cross-compiling for a target system that has a completely different hierarchy, I don't consider it normal to have to install on the build system in this case. I ended up using a symlink on my dev system to, pointing to somewhere acceptable, installed with INSTALL_ROOT=/<path>, but I think this is a bug.
As for the Windows question, I wouldn't know sorry, I develop on Linux.
-
Re: building QWebkit on Windows:
The reason for the build failure are the following lines in qtwebkit/Source/WTF/WTF.pri:
@ contains(QT_CONFIG,icu) {
LIBS += -licui18n -licuuc -licudata
} else {
error("To build QtWebKit with Qt 5 you need ICU")
}
@I could not find a way to include icu in QT_CONFIG, but a brute force approach (for testing purposes) would be to remove the contains query and include the 3 icu libraries unconditionally.
-
hmuelner: That is a different problem, I believe. As stated in "Building_Qt_5_from_Git":http://developer.qt.nokia.com/wiki/Building_Qt_5_from_Git :
WebKit doesn’t compile, missing ICU
Currently there is no configure time check for ICU, so install it through the package manager through
on Ubuntu/Debian:sudo apt-get install libicu-dev
on Fedora:
yum search ICU
Alternatively you can also compile Qt without webkit by deleting / renaming the qtwebkit, qtwebkit-examples-and-demos directories. The -no-webkit option of configure does not work yet : https://bugreports.qt-project.org/browse/QTBUG-20577
-
Hello, I have tried to compile Qt5 under archlinux and under mac os, but in both cases I have got the same errors:
bq.
cd qtsvg/ && make -f Makefile
cd qtphonon/ && make -f Makefile
cd qtxmlpatterns/ && make -f Makefile
make[1]: Entering directory/home/kondr/Documents/qt5/qtxmlpatterns' /home/kondr/Documents/qt5/qtbase/bin/qmake QMAKE_ABSOLUTE_SOURCE_PATH=/home/kondr/Documents/qt5/qtbase -o Makefile qtxmlpatterns.pro Could not find mkspecs for your QMAKESPEC(default) after trying: /home/kondr/Documents/qt5/qtxmlpatterns/mkspecs /home/kondr/Documents/qt5/qt5/mkspecs make[1]: *** [Makefile] Error 3 make[1]: Leaving directory
/home/kondr/Documents/qt5/qtxmlpatterns'
make: *** [module-qtxmlpatterns-make_default] Error 2
make: *** Waiting for unfinished jobs....
make[1]: Entering directory/home/kondr/Documents/qt5/qtsvg' /home/kondr/Documents/qt5/qtbase/bin/qmake QMAKE_ABSOLUTE_SOURCE_PATH=/home/kondr/Documents/qt5/qtbase -o Makefile qtsvg.pro Could not find mkspecs for your QMAKESPEC(default) after trying: /home/kondr/Documents/qt5/qtsvg/mkspecs /home/kondr/Documents/qt5/qt5/mkspecs make[1]: *** [Makefile] Error 3 make[1]: Leaving directory
/home/kondr/Documents/qt5/qtsvg'
make: *** [module-qtsvg-make_default] Error 2
make[1]: Entering directory/home/kondr/Documents/qt5/qtphonon' /home/kondr/Documents/qt5/qtbase/bin/qmake QMAKE_ABSOLUTE_SOURCE_PATH=/home/kondr/Documents/qt5/qtbase -o Makefile qtphonon.pro Could not find mkspecs for your QMAKESPEC(default) after trying: /home/kondr/Documents/qt5/qtphonon/mkspecs /home/kondr/Documents/qt5/qt5/mkspecs make[1]: *** [Makefile] Error 3 make[1]: Leaving directory
/home/kondr/Documents/qt5/qtphonon'
make: *** [module-qtphonon-make_default] Error 2I have used the next command:
bq. git clone git://gitorious.org/qt/qt5.git qt5 && cd qt5 && perl init-repository && export PATH="$PWD/qtbase/bin:$PATH" && ./configure -prefix $PWD/qt5 -opensource -confirm-license -nomake tests -nomake examples && make -j3
In addition I would like to know how to compile Qt 5 for a special arch? (for example, how to compile Qt 5 for i386 arch on x86_64 OS?)