Qt5 development primer
-
i building qt5 with wingw32,but have a error:
qsvgstyle_p.h:65:20: qdebug.h:No such file or directory
-
I just happened to notice your posts - I didn't get an email notification.
According to configure, "To reconfigure, run 'make confclean' and 'configure'.".
Well you probably know that at least with Qt5 alpha, that doesn't work.I'm on Debian so I can't offer any Windows wisdom, but for "make clean" I just delete the directory and re-unpack the alpha .tar.bz2 again.
I'm in the dark as to how to build/use the QtDeclarative component.
It appears that the header I'm looking for - "QtDeclarative/QDeclarativeComponent" isn't installed although it's in the source tree - yes I built/installed qtjsbackend and qtdeclarative.Also, it would be nice if Qt5 beta had a top-level makefile that included targets for
linux-x86-32-gcc-x11
linux-x86-64-gcc-x11
windows7-64-msvc2010and so on, so we could be sure we're building against a known and tested build configuration.
And yes, it should fail if any prerequisites are missing (and maybe print warnings if they are different versions).
-
Hi All,
I'm trying to building Qt5 om Mac OSX 10.7. Following the instructions given here:
http://qt-project.org/wiki/Building_Qt_5_from_Git
However, I'm running into an issue in the build-step which I'm not
sure how to solve. One of the errors I'm getting is the following:gcc: error: tools/qlocale_mac.mm: Objective-C++ compiler not installed
on this systemI will give a detailed step-by-step descriptions of my process below,
assuming the starting point to be a blank shell with PWD=$HOME:(1) git clone git://gitorious.org/qt/qt5.git qt5 [check!]
(2) cd qt5 [check!] :)
(3) perl init-repository --no-webkit [check! Does its job without complaining. I can provide the log if necessary]
(4) unset QTDIR [check!] :)
(5) export PATH="$PWD/qtbase/bin:$PWD/qtrepotools/bin:$PATH" [check!] :)
(6) ./configure -developer-build -opensource -nomake examples -nomake
tests [check! See below]Get a few warnings about some Qt header not containing macros, e.g.:
QtCore: WARNING:
/Users/thinks/qt5/qtbase/src/corelib/qtcoreversion.h does
not include QT_BEGIN_HEADERbut they don't seem severe. Other relevant output:
Build type: macx-clang
Architecture: x86_64
Host architecture: x86_64
Platform notes:- Also available for Mac OS X: macx-g++
(7) ./build -j 4
This is where the trouble begins. The following (first) error is given:
[Lots of output without errors...]
qabstractanimation.h -o .moc/debug-shared/moc_qabstractanimation.cpp
gcc: error: tools/qlocale_mac.mm: Objective-C++ compiler not installed
on this system
gcc: error: kernel/qcore_mac_objc.mm: Objective-C++ compiler not
installed on this systemSimilar errors are reported further on as well, all with the same
reason given. It seems somewhat strange that gcc is used over g++, but
at the moment I'm not really sure why this happens.Some info about gcc:
[thinks@wiggs ~] gcc --version
gcc (GCC) 4.8.0 20120408 (experimental)Any advice greatly appreciated!
Thanks,
T
-
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.