Cross compilation with X11
-
Hi all,
I want to cross compile Qt source for arm which is running ubuntu 12.10, which is similar that of desktop environment.
I need Qt application to run on the top of the Gnome.How do I cross compile Qt source?
In found some solutions i.e :
@./configure -arch arm -xplatform $customMkspecDirName@Is that all needed to be given for configuring Qt source or anything along with that?
Also what changes should be made in qmake.conf file?
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 what it should contain?Please help me to gain knowledge how to run Qt with X11.
Thank you in advance :) -
Hi,
You need to also provide the cross-compiled X11 libraries for Qt to link to.
What board are you targeting ?
-
I am targeting a board similar to that of Beagleboard-Xm.
Cross compiled X11 libraries? How do I do it?
Can you please suggest me.
-
The most straightforward way to do that, is to install the corresponding dev packages on your target and use it as sysroot to build Qt
-
Sorry I dint understand. Can elaborate little?
I tried Cross compiling Qt source with the below configure options:
@./configure -prefix /usr/local/Qt_4.8.6 -arch arm -platform linux-g++-32 -xplatform linux-arm-linaro-g++ -static -nomake demos -nomake examples -no-openssl -no-sql-sqlite -no-phonon -no-phonon-backend -no-webkit -no-mmx -no-rpath -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -little-endian -fontconfig -no-sql-mysql -no-sql-odbc -no-sql-psql -nomake docs -nomake translations -qt-freetype -qt-libjpeg -qt-libpng@But I got the following error and configuration stopped:
@Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/chaitra/Desktop/qt-everywhere-opensource-src-4.8.6/mkspecs/linux-arm-linaro-g++.@I have installed all the dependies as stated in
"this":http://qt-project.org/doc/qt-4.8/requirements-x11.html link
Still the result is same.Please suggest me to cross compile the X11 libraries because the above error while configuring is due to same reason.
Thank you.
-
What you did is install the dependencies to build Qt for your computer. What you need to do is install them for your target. So the simplest way is to login to your target, install all the needed dependencies.
The you can e.g. mount your device filesystem in a place on your computer using e.g. sshfs and give the -sysroot parameter to configure pointing to where your mounted the device fs. It should then pick the headers and libraries from there and continue its work
-
Hi,
I successfully cross compiled Qt source using sysroot.
Thank you so much.I have one more problem.
I created a sample application and tried to compile it.
As it was not accessible for the sysroot or something else I was unable to build my QT application in the Qt creator.I got the following error:
@cc1plus: error: /media/SSHFS_X11/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc/include: Permission denied
cc1plus: error: /media/SSHFS_X11/usr/include/.: Permission denied
cc1plus: error: /media/SSHFS_X11/usr/include/arm-linux-gnueabihf: Permission denied
cc1plus: error: /media/SSHFS_X11/usr/include: Permission denied@I tried to make changes in Tools->Options->Build and Run->Kits->sysroot I tried to include the mounted file system, but it was blank and nothing I could include it from my mounted file system SSHFS_X11.
Can I know what I need to do now? Please help me to resolve this issue.
Thank you.
-
Did you check that you have read rights on you mounted file system ? Also did you mount it to the same place you used when cross-compiling Qt ?
-
Hi,
Yes I have mounted on the place as I had while cross compiling.I have permission to read/write but as a root. Its as shown below:
@drwxr-xr-x 2 root root 4096 Jun 11 2013 cdrom
drwxrwx--- 2 root vboxsf 4096 Jun 12 2013 sf_UbuntuSharedFolder
drwxr-xr-x 1 root root 4096 Oct 6 11:28 SSHFS_X11@ -
Hi,
I resolved that issue. The problem was while mounting the file system using ssfhs I had not provided an option i.e allow_other. So it was showing permission denied error
Thank you. -
Hi,
All my problem solved. Now Qt application is running on gnome.
Thank you so much for the help :) :) -
You're welcome !
Since you have your application working now, please update the thread title prepending [solved] so other forum users may know a solution has been found :)
-
Hi,
Ya sure I will do it.
I have one more problem. Keyboard is not working after running the application.
How can I enable it? -
How are you starting your application ? What type of keyboard is it ?
-
I am using USB Keyboard.
I am starting the application by giving the command in the terminal:
@./Test_app@Keyboard works till application runs after application start running it doesn't work.
-
Still using X11 ?
-
Yes Qt application running on X11.
-
@thanga said in [SOLVED]Qt cross compilation with X11:
Is it possible build without target device ?
Can you explain what you mean?
You can build without target device if you have a sysroot for it. -
I have mounted target device on /media/SSHFS_X11/ path on host machine (Ubuntu). While mounted Qt getting build, If I disconnect the target device. I am getting following error:
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/lolveley/bin/qt-x11-opensource-src-4.5.1/mkspecs/linux-g++.May I know how to build without target device ? And how to configure sysroot on host (Ubuntu) machine ?
Could you please help me on this...