Qt5 development primer
-
Hello.
I am trying to build Qt 5.4.1 on CentOS 5.10. Unfortunately I got stuck on step:
yum install libxcb libxcb-devel xcb-util xcb-util-devel
Error:
sudo yum install libxcb libxcb-devel xcb-util xcb-util-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile- base: mirror.nsc.liu.se
- epel: mirror.nsc.liu.se
- extras: mirror.nsc.liu.se
- updates: mirror.nsc.liu.se
Setting up Install Process
No package libxcb available.
No package libxcb-devel available.
No package xcb-util available.
No package xcb-util-devel available.
Nothing to do
-
This post is deleted!
-
@werispaul did you found a solution to this compiling error: "QtGui/QPlatformDialogHelper": No such file or directory?
I have similar problem with missing headers, when compiling Qt from git. -
I try build Qt 5.12 on my Ubuntu 18 with X11 on OrangePi 4 like here
Qt soures are on qt5 folder
build folder is parallel qt5
I use
cd build
sudo ../configure -developer-build -opensource -nomake examples -namake tests -confirm-licence -skip webengine -vAnd there are errors like failed to create symbolic link 'libreduce_exports.so': Operation not permitted
But I use sudo... Also I try use sudo su. The same. Is this error because of FAT32 file system for my qt5 and build folders?
After make -j 4 I got build/qtbase/lib/libQt5Core.so No such file or directory -
@DungeonLords Why do you use FAT32 on Linux?
You should not use sudo at all - put Qt sources and build folder in your home directory. -
Hi,
About this page: https://wiki.qt.io/Building_Qt_5_from_Git- For openSUSE (I'm on Leap 15), I had to install more software than the one listed (
sudo zypper install git-core gcc-c++ make
), they arellvm-devel clang clang-devel mozilla-nss-devel
(not sure for clang if just clang is needed or just clang-devel or both), - And just out of curiosity, is there a reason why weneed run configure with
../qt5/configure
and not just./configure
?
Thanks
- For openSUSE (I'm on Leap 15), I had to install more software than the one listed (
-
@Gluttony said in Qt5 development primer:
And just out of curiosity, is there a reason why weneed run configure with ../qt5/configure and not just ./configure ?
It is better to do out of source builds to not to pollute source tree with build artefacts.
-
I proposed a few edits over on the wiki to clarify the business about parallel directories and shadow builds, because I found the instructions very confusing. I now think it needs yet another edit, and I wanted to run it by this forum.
If you follow the instructions about creating a build directory that is parallel to the source directory, you end up with two directories both in home: (1)
~/qt5
, which holds the source (per thegit clone
instructions on the page, and (2)~/qt5-build
(or something like that), in which the source is built. Number (2) is not explicit in the existing instructions, but it has to be the intention, otherwise the command given for running configure, namely../qt5/configure
, would not work.But if you build Qt inside your home directory, then when you try to run
qmake
naked at a prompt, you get an error:qmake: could not exec '/usr/lib/qt5/bin/qmake': No such file or directory
The error makes sense, because if we followed directions, we didn't build Qt into
/usr/lib/qt5
, but instead into~/qt5-build
(or something like it). So to runqmake
, we need to provide the full path (or change the PATH environment variable).My question: Am I missing something? If I'm not, then I think that the wiki should be further edited to make this point about the path. But I hesitate to make yet another edit in case I am missing something. If anyone can shed some light either way, please do. If I'm right, I'll just edit the wiki page.
-
@bhagerty hi and welcome to devnet,
What using a custom build of Qt: always use the full path to qmake. You may have the one provided by your distribution installed which will be the one invoked. One other thing you did not take into account is unless you are doing a developer build (because you want to hack on Qt) you have to call 'make install' as last step.