How can I cross-compile QT 5.0?
-
Hi and welcome to devnet,
Did you re-configure from a clean source tree ? If not, you need to do a make conf-clean.
I would recommend using out of source builds. That way when you test something you only need to delete the build folder content to start again.
-
Thank you for the reply. Also one little add on in my first configuration I am also using -icu libraries ie. -licuuc -licui18n -licudata (cross compiled with arm-linux-xilinx-gnueabi-g++)
For the -glib and -dbus, I am using the fresh source code.
Correct me if my understanding is wrong, when we run the make after config; first of all the code generates the qmake utility and then qmake is used to generate the Qt library. So if I am right ; what I can see that, make is using the g++ compiler to build the qmake (instead of arm-linux-xilinx-gnueabi-g++) first. Due to this compiler when it tries to link the -licu, -ldbus and -lglib libraries (which were cross compiled using arm-linux-xilinx-gnueabi-g++) ; one of the error is :
/usr/bin/ld: skipping incompatible /home/$ICU_INSTALL_PATH/lib/libicu.so when searching for -licu.
same type of the error occurs for all the libraries ie -dbus and -glib.
So now at this point I have two questions;
-
How to use configure so that qmake can be build using arm-linux-xilinx-gnueabi-g++ compiler?
-
If the make process of qmake doesn't depend on compiler, then why at the first time when I was using the -icu (cross compiled) was passing and it is failing second time when I am using -glib, -dbus?
Can you provide little more understanding out the process, please.
Best Regards
-
-
Copy the linux-arm-gnueabi-g++ mkspec to arm-linux-xilinx-gnueabi-g++ and update it's content to use arm-linux-xilinx-gnueabi-* tools
-
yes your suggestion helped to solve the issue related to configuration, now with that I could able to run the configuration and it generated the make file: But when I am running the make; it gives me again the same problem. So I am attaching the logs:
/usr/bin/ld: skipping incompatible /home/work/qt-5.1.1/../fs/fs/usr/lib/libdbus-1.so when searching for -ldbus-1
/usr/bin/ld: skipping incompatible /home/work/qt-5.1.1/../fs/fs/usr/lib/libglib-2.0.so when searching for -lglib-2.0
/usr/bin/ld: skipping incompatible /home/work/icu/install-arm/icu_build/lib/libicuuc.so when searching for -licuuc
/usr/bin/ld: skipping incompatible /home/work/icu/install-arm/icu_build/lib/libicui18n.so when searching for -licui18n
/usr/bin/ld: skipping incompatible /home/work/icu/install-arm/icu_build/lib/libicudata.so when searching for -licudata
/home/work/qt-5.1.1/qtbase/lib/libQt5Bootstrap.a(qbytearray.o): In functionqUncompress(unsigned char const*, int)': qbytearray.cpp:(.text._Z11qUncompressPKhi+0xde): undefined reference to
uncompress'
/home/work/qt-5.1.1/qtbase/lib/libQt5Bootstrap.a(qbytearray.o): In functionqCompress(unsigned char const*, int, int)': qbytearray.cpp:(.text._Z9qCompressPKhii+0xda): undefined reference to
compress2'
collect2: ld returned 1 exit status
make[3]: *** [../../../bin/moc] Error 1
make[3]: Leaving directory/home/work/qt-5.1.1/qtbase/src/tools/moc' make[2]: *** [sub-moc-make_first] Error 2 make[2]: Leaving directory
/home/work/qt-5.1.1/qtbase/src'
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory `/home/work/qt-5.1.1/qtbase'
make: *** [module-qtbase-make_first] Error 2From the first few lines you can see that its skipping to incorporate the required cross compiled libraries:
When I am not including the -dbus and -glib and successfully compiling the qt libraries; I can see that there is no webkit support when I'm trying to generate the make file from the *.pro file.
Regards
-
also I noticed that there is no webkit support even I am cross compiling the qt after enabling ICU in the configuration.
After little search I came to know that it requires ruby, I went into the webkit directory and ran the qmake -o Makefile Webkit.pro.The web kit build was disabled for the following reasons:
Missing ruby from the PATH:
so do I need to cross compile ruby or just I need to install on the host.Please let me know.
Thanks -
Did you restart from a clean state ?
-
Ruby on your host
-
I got little success, webkit is compiled now.
But when I am trying to use it in my Qt-application.
QT =+ webkit webkitwidget
Project error: Unknown modules in QT: webkit webkitwidgets
I think it is related with the version of qmake , I have 3.0 but that was supplied with Qt-5.3.1.
So how to include webkit and wekitwidget .
-
If you want to build a project with your cross-compiled Qt, use the corresponding qmake.
-
I think you are not getting my point. It is obvious for me to use the same qmake to build my project. If I use Qt =+ multimedia core, its working fine but the problem is with webkit,
There are certain post about this same error but not satisfactory answer to this problem.
so any clue on this part?
Also when I omit webkit and create the application and try to run on the target is sayFailed to load platform plugin xcb. I found one post by you and will go from there. http://qt-project.org/forums/viewthread/30825. Do I need xcb on host or target?
But still not sure for webkit error.
-
- I don't have libqxcb.so library at my qt_install/plugins/platforms location.
I have only libqlinuxfb.so . libqminimal.so and libqoffscreen.so
- I don't have libqxcb.so library at my qt_install/plugins/platforms location.
-
Are you running a X11 server on your target ?
-
Yes, the xcb plugin is used for X11
Sure you can, tell you application which plugin to load when starting it. More info "here":http://qt-project.org/doc/qt-5/embedded-linux.html
-
ok so based on your link if I don't have X11, then I don't have to worry about XCB platform plugin. Instead I should try to enable LinuxFB.
Shall I use QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0 at the configuration time.
And QT_QPA_GENERIC_PLUGINS=evdevkeyboard,evdevmouse,evdevtouch for the input, this is also at the configuration time.
Am I right?
-
At run time would be more exact
-
At run time would be more exact
-
Hi SGaist,
Its been while we are communicating on the issue about how to successfully build and deploy the Qt application on the Arm board but nothing is coming up fruitful. I was wondering how best you can provide the help about the Qt?Is it possible for you to provide some step by step guide, I also saw few of your communication with other interested people and those were left without fruitful outcome.
say I want to build application and deploy on the board: what are the things that I have to enable in kernel config, at the Qt config level and how to deploy application and deploying the Qt frame work:
On the board my file system is mounted through NFS, like this: bin, dev, etc, lib, proc, sbin, srv, sys, tmp, usr, var