Qt5 development primer
-
Thanks, Ludde! :)
We finally got it working here. The following was required:
-
Grab latest from Qt5 git repo.
git clone git://gitorious.org/qt/qt5.git qt5 -
Use Qt's provided tool to initialize the repo.
cd qt5
perl init-repository --no-webkit -
Set up our build environment.
unset QTDIR
export PATH="$PWD/qtbase/bin:$PWD/qtrepotools/bin:$PATH"
export PATH=/Applications/XCode.app/Contents/Developer/usr/bin:$PATH
export CPP=clang++
export CC=clang
echo PATH $PATH -
Pre-build configuration. Note that we are forcing it to build using
the Xcode compilers.
./configure -no-pch -developer-build -confirm-license -opensource
-release -nomake demos -nomake examples -arch x86 -sdk
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -
Build. We could increase the number of course to improve speed once
we are convinced that this works well...
./build -j 1
Not sure all of that stuff is required though, but because the build time is quite steep (even with j > 1) we didn't have time to narrow it down.
Cheers,
T
-
-
hi .
I am currently doing the Qt5 manipulation and I have one little question ^^ .
Is it possible to realize a configuration (./configure) in static Qt5 mode (-static) by incorporing the QtSerialPort class, which we must add to our pre-existing library thanks to that manipulation: http://qt-project.org/wiki/QtSerialPort ?
If this is not possible to change QtSerialPort in static library, but just the QT5 library . When I will compile my project which uses QtSerialPort, will it run like a static program or I need to include a .so (or dll) ?
Sorry for my bad english .
-
I am having trouble building Qt5......
I have Visual Studio 2008 andf have installed the latest SDK......
C:\qt5>configure -developer-build -opensource -nomake examples -nomake tests
- C:/qt5/qtbase/configure -developer-build -opensource -nomake examples -nomake
tests
Please wait while bootstrapping configure ...
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.cl -c -Yc -nologo -Zm200 -Zc:wchar_t -MT -W3 -GR -EHsc -w34100 -w34189
-DUNICODE -DQT_NODLL -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT
_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VAR
IANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DCOMMERCIAL_VERSION -I"....
include" -I"....\include\QtCore" -I"....\include\QtCore\5.0.0" -I"....\includ
e\QtCore\5.0.0\QtCore" -I"C:\qt5\qtbase\tools\shared" -I"C:\qt5\qtbase\mkspecs\w
in32-msvc2008" -Fpconfigure_pch.pch -Foconfigure_pch.obj -TP C:\qt5\qtbase\tools
\configure\configure_pch.hCommand line warning D4002 : ignoring unknown option '-Zc'
Command line warning D4002 : ignoring unknown option '-Z:'
Command line warning D4002 : ignoring unknown option '-Zw'
Command line warning D4002 : ignoring unknown option '-Zc'
Command line warning D4002 : ignoring unknown option '-Zh'
Command line warning D4002 : ignoring unknown option '-Zr'
Command line warning D4002 : ignoring unknown option '-Z_'
Command line warning D4002 : ignoring unknown option '-Zt'
Command line warning D4002 : ignoring unknown option '-w34100'
Command line warning D4002 : ignoring unknown option '-w34189'configure_pch.h
....\include\QtCore../../src/corelib/global/qglobal.h(45) : fatal error C1083:
Cannot open include file: 'stddef.h': No such file or directory
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
*** qtbase/configure exited with non-zero status. - C:/qt5/qtbase/configure -developer-build -opensource -nomake examples -nomake
-
I have a proble compiling Qt5 master recently
(Linux x86_64 Mageia, GCC 4.7.1)make[2] : on entre dans le répertoire « /home/qtdev/srcs/qt5/qtsystems/src/systeminfo »
g++ -c -m64 -pipe -g -std=c++0x -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fno-exceptions -fPIC -DQT_SHARED -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 -DQT_BUILD_SYSTEMINFO_LIB -DQT_MAKEDLL -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_NO_MTLIB -DQT_NO_SFW_NETREG -DQT_NO_OFONO -DQT_NO_UDISKS -DQT_NO_LIBSYSINFO -DQT_QML_LIB -DQQmlImageProvider=QQuickImageProvider -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/home/qtdev/mkspecs/default -I. -I/home/qtdev/include/QtCore -I/home/qtdev/include/QtGui -I/home/qtdev/include/QtNetwork -I/home/qtdev/include -I/home/qtdev/include/QtQml -I/home/qtdev/include/QtJsonDb -I../../include/QtSystemInfo/5.0.0 -I../../include/QtSystemInfo/5.0.0/QtSystemInfo -I../../include -I../../include/QtSystemInfo -I../../include -I.rcc/debug-shared -I.moc/debug-shared -o .obj/debug-shared/qnetworkinfo_linux.o qnetworkinfo_linux.cpp
In file included from qnetworkinfo_linux.cpp:56:0:
/usr/include/bluetooth/bluetooth.h: In function ‘uint64_t bt_get_le64(const void*)’:
/usr/include/bluetooth/bluetooth.h:159:9: erreur: expected identifier before ‘’ token
/usr/include/bluetooth/bluetooth.h:159:9: erreur: expected ‘,’ or ‘...’ before ‘(’ token
/usr/include/bluetooth/bluetooth.h:159:9: erreur: expected ‘;’ at end of member declaration
/usr/include/bluetooth/bluetooth.h:159:9: erreur: ‘__v’ does not name a type
/usr/include/bluetooth/bluetooth.h:159:9: erreur: ‘typeof’ was not declared in this scope
/usr/include/bluetooth/bluetooth.h:159:9: erreur: ‘struct bt_get_le64(const void)::<anonymous>’ has no member named ‘__v’
/usr/include/bluetooth/bluetooth.h: In function ‘uint64_t bt_get_be64(const void*)’:
/usr/include/bluetooth/bluetooth.h:164:9: erreur: expected identifier before ‘’ token
/usr/include/bluetooth/bluetooth.h:164:9: erreur: expected ‘,’ or ‘...’ before ‘(’ token
/usr/include/bluetooth/bluetooth.h:164:9: erreur: expected ‘;’ at end of member declaration
/usr/include/bluetooth/bluetooth.h:164:9: erreur: ‘__v’ does not name a type
/usr/include/bluetooth/bluetooth.h:164:9: erreur: ‘typeof’ was not declared in this scope
/usr/include/bluetooth/bluetooth.h:164:9: erreur: ‘struct bt_get_be64(const void)::<anonymous>’ has no member named ‘__v’
/usr/include/bluetooth/bluetooth.h: In function ‘uint32_t bt_get_le32(const void*)’:
/usr/include/bluetooth/bluetooth.h:169:9: erreur: expected identifier before ‘’ token
/usr/include/bluetooth/bluetooth.h:169:9: erreur: expected ‘,’ or ‘...’ before ‘(’ token
/usr/include/bluetooth/bluetooth.h:169:9: erreur: expected ‘;’ at end of member declaration
/usr/include/bluetooth/bluetooth.h:169:9: erreur: ‘__v’ does not name a type
/usr/include/bluetooth/bluetooth.h:169:9: erreur: ‘typeof’ was not declared in this scope
/usr/include/bluetooth/bluetooth.h:169:9: erreur: ‘struct bt_get_le32(const void)::<anonymous>’ has no member named ‘__v’
/usr/include/bluetooth/bluetooth.h: In function ‘uint32_t bt_get_be32(const void*)’:
/usr/include/bluetooth/bluetooth.h:174:9: erreur: expected identifier before ‘’ token
/usr/include/bluetooth/bluetooth.h:174:9: erreur: expected ‘,’ or ‘...’ before ‘(’ token
/usr/include/bluetooth/bluetooth.h:174:9: erreur: expected ‘;’ at end of member declaration
/usr/include/bluetooth/bluetooth.h:174:9: erreur: ‘__v’ does not name a type
/usr/include/bluetooth/bluetooth.h:174:9: erreur: ‘typeof’ was not declared in this scope
/usr/include/bluetooth/bluetooth.h:174:9: erreur: ‘struct bt_get_be32(const void)::<anonymous>’ has no member named ‘__v’
/usr/include/bluetooth/bluetooth.h: In function ‘uint16_t bt_get_le16(const void*)’:
/usr/include/bluetooth/bluetooth.h:179:9: erreur: expected identifier before ‘’ token
/usr/include/bluetooth/bluetooth.h:179:9: erreur: expected ‘,’ or ‘...’ before ‘(’ token
/usr/include/bluetooth/bluetooth.h:179:9: erreur: expected ‘;’ at end of member declaration
/usr/include/bluetooth/bluetooth.h:179:9: erreur: ‘__v’ does not name a type
/usr/include/bluetooth/bluetooth.h:179:9: erreur: ‘typeof’ was not declared in this scope
/usr/include/bluetooth/bluetooth.h:179:9: erreur: ‘struct bt_get_le16(const void)::<anonymous>’ has no member named ‘__v’
/usr/include/bluetooth/bluetooth.h: In function ‘uint16_t bt_get_be16(const void*)’:
/usr/include/bluetooth/bluetooth.h:184:9: erreur: expected identifier before ‘’ token
/usr/include/bluetooth/bluetooth.h:184:9: erreur: expected ‘,’ or ‘...’ before ‘(’ token
/usr/include/bluetooth/bluetooth.h:184:9: erreur: expected ‘;’ at end of member declaration
/usr/include/bluetooth/bluetooth.h:184:9: erreur: ‘__v’ does not name a type
/usr/include/bluetooth/bluetooth.h:184:9: erreur: ‘typeof’ was not declared in this scope
/usr/include/bluetooth/bluetooth.h:184:9: erreur: ‘struct bt_get_be16(const void)::<anonymous>’ has no member named ‘__v’Seems related to bluetooth, but since I don't know bluez very well, I don't know where to look at.
-
Have you updated QTDIR and PATH before starting the build? It seems that your search paths are polluted, or bluetooth.h - maybe - bluetooth.h is not ready for C++11, or something entirely different is happening :P.
-
This issue happened to me quite recently actually. (< 2 weeks) my bluetooth.h did not had any problems before ...
-
Seems to be ok with latest updates
-
At the compilation under Windows I have:
Creating qmake...
g++ -c -oproject.o -O -IC:\Users\user\Desktop\qt5-src\qtbase/qmake -IC:\Users\us
er\Desktop\qt5-src\qtbase/qmake/generators -IC:\Users\user\Desktop\qt5-src\qtbas
e/qmake/generators/unix -IC:\Users\user\Desktop\qt5-src\qtbase/qmake/generators/
win32 -IC:\Users\user\Desktop\qt5-src\qtbase/qmake/generators/mac -IC:\Users\use
r\Desktop\qt5-src\qtbase/qmake/generators/integrity -IC:\Users\user\Desktop\qt5-
src\qtbase/include -IC:\Users\user\Desktop\qt5-src\qtbase/include/QtCore -IC:\Us
ers\user\Desktop\qt5-src\qtbase/include/QtCore/5.0.0 -IC:\Users\user\Desktop\qt5
-src\qtbase/include/QtCore/5.0.0/QtCore -IC:\Users\user\Desktop\qt5-src\qtbase/s
rc/corelib/global -IC:\Users\user\Desktop\qt5-src\qtbase/mkspecs/win32-g++ -IC:
Users\user\Desktop\qt5-src\qtbase/tools/shared -DQT_NO_TEXTCODEC -DQT_NO_UNICODE
TABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BU
ILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM
-DQT_BOOTSTRAPPED -DQMAKE_OPENSOURCE_EDITION project.cpp
g++: CreateProcess: No such file or directory
mingw32-make: *** [project.o] Error 1
del /f project.o main.o makefile.o unixmake.o unixmake2.o mingw_make.o option.o
winmakefile.o projectgenerator.o property.o meta.o makefiledeps.o metamakefile.o
xmloutput.o pbuilder_pbx.o borland_bmake.o msvc_nmake.o msvc_vcproj.o msvc_vcxp
roj.o msvc_objectmodel.o msbuild_objectmodel.o registry.o gbuild.o cesdkhandler.
o qbitarray.o qbuffer.o qarraydata.o qbytearray.o qcryptographichash.o qvsnprint
f.o qbytearraymatcher.o qconfig.o qdatetime.o qdir.o qdiriterator.o qfiledevice.
o qfile.o qtemporaryfile.o qfileinfo.o qabstractfileengine.o qfilesystementry.o
qfilesystemengine.o qfilesystemengine_win.o qfilesystemiterator_win.o qfsfileeng
ine.o qfsfileengine_iterator.o qfsfileengine_win.o qglobal.o qhash.o qiodevice.o
qlibraryinfo.o qlist.o qlinkedlist.o qlocale.o qlocale_tools.o qlocale_win.o qm
alloc.o qmap.o qregexp.o qtextcodec.o qutfcodec.o qstring.o qstringlist.o qstrin
gbuilder.o qsystemerror.o qsystemlibrary.o qtextstream.o quuid.o qvector.o qsett
ings.o qsettings_win.o qvariant.o qmetatype.o qxmlstream.o qxmlutils.o qnumeric.
o qlogging.o
Could Not Find C:\Users\user\Desktop\qt5-src\qtbase\qmake\project.o
g++ -c -oproject.o -O -IC:\Users\user\Desktop\qt5-src\qtbase/qmake -IC:\Users\us
er\Desktop\qt5-src\qtbase/qmake/generators -IC:\Users\user\Desktop\qt5-src\qtbas
e/qmake/generators/unix -IC:\Users\user\Desktop\qt5-src\qtbase/qmake/generators/
win32 -IC:\Users\user\Desktop\qt5-src\qtbase/qmake/generators/mac -IC:\Users\use
r\Desktop\qt5-src\qtbase/qmake/generators/integrity -IC:\Users\user\Desktop\qt5-
src\qtbase/include -IC:\Users\user\Desktop\qt5-src\qtbase/include/QtCore -IC:\Us
ers\user\Desktop\qt5-src\qtbase/include/QtCore/5.0.0 -IC:\Users\user\Desktop\qt5
-src\qtbase/include/QtCore/5.0.0/QtCore -IC:\Users\user\Desktop\qt5-src\qtbase/s
rc/corelib/global -IC:\Users\user\Desktop\qt5-src\qtbase/mkspecs/win32-g++ -IC:
Users\user\Desktop\qt5-src\qtbase/tools/shared -DQT_NO_TEXTCODEC -DQT_NO_UNICODE
TABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BU
ILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM
-DQT_BOOTSTRAPPED -DQMAKE_OPENSOURCE_EDITION project.cpp
g++: CreateProcess: No such file or directory
mingw32-make: *** [project.o] Error 1
Building qmake failed, return code 2*** qtbase/configure exited with non-zero status.
but if I cd qtbase/qmake/;mingw32-make all it work.
-
I was getting "The Remote End Hung up Unexpectedly" when running "perl init-repository". I found that if I used the "-http" option at the end of that line, the failures stopped. It seems that the "git" protocol is a bit flaky. Making http the default in the "init-repository" script would make the process a bit more robust.
-
You can also rerun the script with "-f". Doesn't fix git protocol, but often it works on second try.
-
Yeah, unfortunately for me, re-runnng w/git kept failing at different points.
-
Hi,
I'm new to command line compiling and Git.Thanks to the excellent "guide":http://qt-project.org/wiki/Building_Qt_5_from_Git I was able to build Qt from source. Now, with the latest beta 2 release, I'd like to update Qt.
My question is simple:
Do I need to run configure after:
git pull
git submodule update --recursiveOr can I just run make again without doing that?
A suggestion would be to update the "Getting Updates" section to include this answer as maybe others would wonder if they need to do that too.
Thanks,
Brett -
Tricky. Depends on what has changed in the source code, really. If you have a solid CPU and a bit of time on your hands, you can definitely try just running make, and then if it fails, you should do a proper clean (git clean -dxf, check the link you provided for a submodule declaration), configure and make.
-
Thanks for your post. I modified the wiki page updates section with a note that clean and configure may need to be re-run.
-
I'm building on windows 7 x64 with msvc2010 sp1 nmake.
For some reason the naming convention is different then the beta release and incompatible with the vs-addin..
All my lib files, dll files etc are named Qt5[lib].dll/lib instead of Qt[lib]5.dll/lib
My config: configure -developer-build -opensource -nomake examples -nomake tests
-
-
Hi,
First I have setup qt5 (both with the linux birnary file and by compiling it) on an Ubuntu 12.04 (and 11.10) KVM virtual machine. But I can't launch any graphical qt program. I have issue with QPainter: that kind of mistakes:
@cedric@cedric-virtual-machine:~/Qt5.0.0beta2/5.0.0-beta2/gcc/bin$ ./assistant
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::font: Painter not active
QPainter::pen: Painter not active
...@So I tried on a windows 32 bits virtual machine. First I installed it with the binary but I couldn't find our the right microsoft compiler so it could work. So I tryed to compile it with mingw32-make. It worked with the following config:
@configure -platform win32-g++ -opengl desktop@
Yeah I couldn't find the right version of direct X sdk so I had some issue and choose to use the opengl option.This version doesn't work with qt creator. I don't know if it is suppoed to? I have an issue with "ABI detection failed. Make sur to use a matching compiler when building. No qml viewer." But I can launch the program named qmlviewer.exe. Also I can compile the following application with qmake.
pro file:
@######################################################################Automatically generated by qmake (3.0) sam. 15. déc. 15:49:19 2012
######################################################################
QT += widgets
TEMPLATE = app
TARGET = test03withoutCreator
DEPENDPATH += .
INCLUDEPATH += .Input
SOURCES += main.cpp
@main.cpp
@#include <QGuiApplication>
#include <QPushButton>Q_DECL_EXPORT int main(int argc, char *argv[]){
QGuiApplication app(argc, argv);QPushButton button("work"); button.show(); return app.exec();
}@
but then, I have no idea how to launch it. I did:
@qmake
mingw32-make release@
Then I put the binary file in qtbase/bin, but I when I launch the application, I get the following message:
"This application has requested the runtime to terminate it in an unusual way."
But the exemples and demos can be launch without any dll in their direcotry. I don't get how that is possible.Someone know what I should do so I can compile and launch application?
Sincerly,
Cédric
-
I'm having trouble building the final release on Windows 7 x64 with both VS2008 and VS2012. I have ActivePerl and Python 2.7 installed and in the path, and in both cases when I run "configure" I get this error:
@
'T:\home\Qt\5.0.0\qtbase\configure.exe' is not recognized as an internal or external command, operable program or batch file.
*** qtbase/configure exited with non-zero status.@Any ideas?