Qt5 development primer
-
Uncanny.
I'm routinely compiling various Qt versions, from 4.8 to 5.1, with make -j9 and never had an issue. Well, once :)
Maybe your "make" is outdated?
-
[quote author="Munawwar" date="1368987136"]I was getting a "runtime/CodeCache.cpp
The bug is not reproducible, so it is likely a hardware or OS problem."
error when using make -j 4.
I had to do a make without specifying '-j 4' (which "I think is serial execution":http://www.gnu.org/software/make/manual/html_node/Parallel.html) for the build to work.[/quote]What CPU, and how much RAM, do you have? -
I'm having problems getting Qt 5.1 to compile:
In file included from ../../include/QtWidgets/qgraphicsscene.h:1:0,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview.h:48,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:56,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/qgraphicsview_p.h:1,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsitem_p.h:59,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicswidget_p.h:57,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/qgraphicswidget_p.h:1,
from kernel/qaction_p.h:58,
from kernel/qactiongroup.cpp:46:
../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:160:24: error: missing binary operator before token "("
../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:167:24: error: missing binary operator before token "("
../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:174:24: error: missing binary operator before token "("
In file included from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsitem_p.h:56:0,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicswidget_p.h:57,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/qgraphicswidget_p.h:1,
from kernel/qaction_p.h:58,
from kernel/qaction.cpp:46:
../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsitem.h:176:24: error: missing binary operator before token "("
../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsitem.h:240:24: error: missing binary operator before token "("
../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsitem.h:298:24: error: missing binary operator before token "("
In file included from ../../include/QtWidgets/qgraphicsscene.h:1:0,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview.h:48,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:56,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/qgraphicsview_p.h:1,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsitem_p.h:59,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicswidget_p.h:57,
from ../../include/QtWidgets/5.1.0/QtWidgets/private/qgraphicswidget_p.h:1,
from kernel/qaction_p.h:58,
from kernel/qaction.cpp:46:
../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:160:24: error: missing binary operator before token "("
../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:167:24: error: missing binary operator before token "("
../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:174:24: error: missing binary operator before token "("
In file included from kernel/qactiongroup.cpp:382:0:
.moc/release-shared/moc_qactiongroup.cpp:15:2: error: #error "This file was generated using the moc from 5.1.0. It"
.moc/release-shared/moc_qactiongroup.cpp:16:2: error: #error "cannot be used with the include files from this version of Qt."
.moc/release-shared/moc_qactiongroup.cpp:17:2: error: #error "(The moc has changed too much.)"
In file included from ../../include/QtWidgets/qaction.h:1:0,
from kernel/qactiongroup.h:45,
from kernel/qactiongroup.cpp:42:
../../include/QtWidgets/../../src/widgets/kernel/qaction.h:61:32: error: expected initializer before ‘:’ token
In file included from kernel/qaction.cpp:1313:0:
.moc/release-shared/moc_qaction.cpp:15:2: error: #error "This file was generated using the moc from 5.1.0. It"
.moc/release-shared/moc_qaction.cpp:16:2: error: #error "cannot be used with the include files from this version of Qt."
.moc/release-shared/moc_qaction.cpp:17:2: error: #error "(The moc has changed too much.)"
In file included from kernel/qaction.cpp:42:0:
kernel/qaction.h:61:32: error: expected initializer before ‘:’ token
make[3]: *** [.obj/release-shared/qactiongroup.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [.obj/release-shared/qaction.o] Error 1
make[3]: Leaving directory/media/usb_700_ext4/qt5/qtbase/src/widgets' make[2]: *** [sub-widgets-make_first] Error 2 make[2]: Leaving directory
/media/usb_700_ext4/qt5/qtbase/src'
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory `/media/usb_700_ext4/qt5/qtbase'
make: *** [module-qtbase-make_first] Error 2
allen@ubuntu:/media/usb_700_ext4/qt5$Can anybody explain why?
-
[quote author="allenck" date="1369345509"].moc/release-shared/moc_qactiongroup.cpp:15:2: error: #error “This file was generated using the moc from 5.1.0. It”
.moc/release-shared/moc_qactiongroup.cpp:16:2: error: #error “cannot be used with the include files from this version of Qt.”[/quote]It looks like you have multiple versions of Qt in your environment. Remove the older one from your PATH, clean your build tree (i.e. delete all the files that have been compiled so far), and try again.Also, what compiler are you using? How did you configure + build Qt?
-
Thanks. I checked the requirements as it pertained to environment variables but didn't check the path. Undoubtedly that is the reason as the compile seems to be working OK, so far, on another machine.
The compiler is g++ and I was using these configuration settings:
./configure -prefix $PWD/qtbase -opensource -nomake tests -system-sqlite -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-mysql -nomake demo -nomake examples -
I am building from source on Windows with VS2012.
I update the sources from git using the command:
qtrepotools\bin\qt5_tool -p --Branch stable
The problem occurs because the headers in qtbase\include don't get updated when I 'nmake' and those include files are in the include path for each of the subdirectories.
Any idea what I need to do to get the sources to build after updating?
If I make clean, run configure again, and nmake everything works. But it would be better if I didn't have to take those steps every time.
-
[quote author="cmeyer" date="1375727141"]If I make clean, run configure again, and nmake everything works.[/quote]Hi,
That IS the expected procedure. configure performs some bootstrapping and builds a small subset of qtbase.git, which is then used to build the rest of Qt. After you update the code, you have to re-bootstrap (i.e. rerun configure)
You can simplify things by writing a Batch file to run configure with the options you want.
-
[quote author="JKSH" date="1375750792"][quote author="cmeyer" date="1375727141"]If I make clean, run configure again, and nmake everything works.[/quote]Hi,
That IS the expected procedure. configure performs some bootstrapping and builds a small subset of qtbase.git, which is then used to build the rest of Qt. After you update the code, you have to re-bootstrap (i.e. rerun configure)[/quote]
Actually I tried the reconfigure and it still fails. What does work is doing the "really clean" clean, then configure and rebuild:
git submodule foreach --recursive "git clean -dfx"
Maybe the mistake I made this time was not cleaning before updating from the repository. Ugh. And now I'm stuck in some strange state that requires a "really clean" clean and rebuild.
-
sudo apt-add-repository ppa:u-szeged/sedkit && sudo apt-get update && sudo apt-get install sedkit-env-qtwebkit in ubuntu gives me the following errors:
W: Failed to fetch http://ppa.launchpad.net/u-szeged/sedkit/ubuntu/dists/raring/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/u-szeged/sedkit/ubuntu/dists/raring/main/binary-i386/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Am i making some newbie linux mistake or is this method currently broken?
Thanks,
Rich
-
[quote author="rockdemon" date="1376560830"]W: Failed to fetch http://ppa.launchpad.net/u-szeged/sedkit/ubuntu/dists/raring/main/binary-amd64/Packages 404 Not Found[/quote]It looks like U-Szeged Team has become inactive. They only created packages up till Ubuntu 12.10 (Quantal Quetzal): http://ppa.launchpad.net/u-szeged/sedkit/ubuntu/dists/ Unfortunately that means you can't use this method for Ubuntu 13.04 (Raring Ringtail)
[quote author="bitu" date="1376896656"]I had to give root permission to run this script & fix this issue.
But why it is required to give root permission to run script that is present inside my working directory[/quote]What script, for what issue?Did you remember to give it execution permissions? (chmod +x, or right-click -> Properties -> Permissions -> Execute) No script is allowed to run unless they have been given permission.
-
thanks for the info :)
I got it working the manual way so all good in the end :)
Cheers,
Rich
[quote author="JKSH" date="1377003458"][quote author="rockdemon" date="1376560830"]W: Failed to fetch http://ppa.launchpad.net/u-szeged/sedkit/ubuntu/dists/raring/main/binary-amd64/Packages 404 Not Found[/quote]It looks like U-Szeged Team has become inactive. They only created packages up till Ubuntu 12.10 (Quantal Quetzal): http://ppa.launchpad.net/u-szeged/sedkit/ubuntu/dists/ Unfortunately that means you can't use this method for Ubuntu 13.04 (Raring Ringtail)
[quote author="bitu" date="1376896656"]I had to give root permission to run this script & fix this issue.
But why it is required to give root permission to run script that is present inside my working directory[/quote]What script, for what issue?Did you remember to give it execution permissions? (chmod +x, or right-click -> Properties -> Permissions -> Execute) No script is allowed to run unless they have been given permission.[/quote]
-
In the Issues section at the end, one helpful hint may be to describe the error where configure fails on MacOS when certain brew or port packages have been installed with a message that says that no XCB lib found, like this:
Running configuration tests...
The test for linking against libxcb and support libraries failed!
You might need to install dependency packages, or pass -qt-xcb.
See src/plugins/platforms/xcb/README.The easy workaround is to pass -no-pkg-config to configure.
See also this patch which has not yet been accepted:
-
In the System Requirements -> Windows -> Windows Graphics Drivers section where it says that the DirectX SDK must be installed, perhaps this link
http://www.microsoft.com/en-us/download/details.aspx?id=6812
would be a more useful one than what's there:
http://msdn.microsoft.com/en-us/directx/default.aspx
That is, we don't want to read about DirectX, we just want to download and install the SDK and get on with using Qt! ;-)
-
I certainly don't see this stated in the wiki page, but it seems to me that flex is required whenever using Angle… This was in a build of qtbase only, so I'm pretty sure it wasn't a webkit option that caused this build failure:
win_flex --noline --nounistd --outfile=Tokenizer.cpp ........\3rdparty\angle\src\compiler\preprocessor\Tokenizer.l
'win_flex' is not recognized as an internal or external command, -
I'm trying to build Qt 5 from git with Visual Studio 2008.
My os is Windows Vista SP2The configuration seems to be ok, but I have a strange problem in the building (nmake): the first time that rcc is used (with mimetypes.qrc), it crashes, so the building can't continue.
I've tried to run rcc manually. If there is some error in the qrc file (eg some file missing) it correcly outputs the error. Instead if it's all right, it crashes.I also tried to compile the source taken from the zip in the downolad page, but I have the same result.
I don't know what I have to do to better understand the problem.
-
Adding some debug lines in the rcc.cpp code I've found that the problem is the function "qCompress()".
So I added the -qt-zlib option to the configure tool, and now seems to work!So my question now is why the system zlib cause this problem? I have installed the 7.0 version of the Windows SDK, maybe the 7.1 is needed.
The guide indicates a generic Windows SDK 7 version for Visual Studio 2008...Now I'm going to build all and I hope that it works!
-
What compiler was your system Zlib compiled with?