Using QtCreator to deploy and run a Qt application to a remote Linux device

Posted on Thu 17 January 2013 in HowTo • Tagged with deploy, Linux, Qt, QtCreator, SDK, Ubuntu

QtCreator is a very flexible IDE and can really be adapted for a lot of things. I usually use it to develop mobile applications for Nokia N9 and BlackBerry 10, but it can be used for more generic tasks. In my case I wanted to be able to develop a Qt application using my desktop PC, deploy it and run on a remote (actually it's on the same desk) Linux machine running Xubuntu.

Doing this is quite easy and you don't need any specific plugin on QtCreator, but be sure to have at least version 2.6.x. Other than QtCreator you also need two Linux based PC (I used Ubuntu 12.10 for my development machine and Xubuntu 12.10 for the remote netbook) and an SSH account on the remote PC.

Add the remote device to QtCreator

QtCreatorDevice

To add the remote Linux device on QtCreator, use the Tools->Options menu and click on "Devices" item. At this point click on "Add" button and fill the fields using values similar to the screenshot. In particular specify a name for the device, the IP of the remote machine and a username and password that must already exist (I just created the user "andrea" on the Xubuntu machine and used the same password). I also had to set the timeout to 20 seconds, because I had some connection problems and the connection kept dropping after 10 seconds trying. To verify if everything is working fine, just click on Test button.

Add a specific Qt version

QtCreatorQtVersion

To write your application you may need a specific Qt version that is different from the one distributed by your Linux distribution. There's no problem, QtCreator let you add different Qt versions without any conflict. In my case I installed the Qt5 version distributed by Canonical Qt5 Edgers Teamhttps://launchpad.net/~canonical-qt5-edgers
Once it's installed, just click on "Add" button and select the qmake specific to the version you want to add (in my case it was in /opt/qt5/bin/qmake ).

Add a Qt Kit

QtCreatorQtKits

QtCreator permits to add new Kit (development configurations) and these kits are used during project creation to specify what you want to target. In my example I added a new kit choosing an appropriate name "Qt5 Ubuntu", the device type, the actual device previously configured and finally the Qt version that we added before. With a kit I have a complete "toolchain" that allow me to write applications for a particular device, with a specific Qt version.

Putting the pieces together

At this point you just have to create a new "Qt Quick 2" application, and select the new kit you just created instead of the "Desktop" one. Please note that there is a little problem that I haven't fixed yet (but I'm working on it): if you create, for example, a project named "QtTest1" it will be deployed to the folder /opt/QtTest1/ on the remote machine. By default your user doesn't have read+write permissions for that folder so I manualy created the folder and I gave a chmod 777 on it, just for testing. There are two possible ways to fix this: you could create a specific user that has read+write permissions on /opt/ or you could modify the deployment configuration to have the app deployed to the user /home (I will investigate on this possibility and I will write something in one of the next posts).

Final thoughts

What all of this could be useful for? Well, do 2+2 and you'll easily guess ;) In the next weeks I will post more specific informations and I will update everyone with my progresses. Any comment is welcome! If you want to contribute to this you're welcome too of course.


Nokia QtSDK installer crash on Ubuntu: how to fix it

Posted on Thu 12 January 2012 in HowTo, Linux, Programmazione, Qt, Ubuntu (EN) • Tagged with 11.04, 11.10, installer, Natty, nokia, Oneiric, Qt, SDK, Ubuntu

If you try to install Nokia QtSDK on Ubuntu using the Nokia installer (that provides a newer version than the one distributed in Ubuntu Software Center) you could get an error like this:

(Qt_SDK_Lin32_offline_v1_1_3_en.run:3126): Gtk-CRITICAL **:
IA__gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)`
failed

to fix it, you need to run the installer with a specific parameter:

./Qt_SDK_Lin32_offline_v1_1_4_en.run -style cleanlooks

and everything should work!


Develop a GPS-aware application for the Nokia N810

Posted on Tue 24 February 2009 in HowTo, Linux, Maemo (EN), Programmazione, Python • Tagged with eclipse, gps, Python, SDK

Paul Ferrill has written a serie of three articles about writing a GPS-aware application for the Nokia N810, using the Maemo SDK, Eclipse and PluThon plugin.

Here is the complete serie:


Scratchbox on Ubuntu Hardy troubleshooting

Posted on Mon 21 April 2008 in Maemo (EN) • Tagged with maemo, nokia, scratchbox, SDK, tablet

Yesterday I upgraded from Ubuntu 7.10 to the new 8.04 RC and I "broke" my Scratchbox installation. I tried to install it again and I had still some problems logging into Scratchbox and installing the SDK.

The I found this page: http://suppressingfire.livejournal.com/35277.html

that explain how to fix these problems. In particular if you get this kind of error trying to log into Scratchbox:

Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!

You can fix it in this way:

echo 0 | sudo tee /proc/sys/vm/vdso_enabled

You can read the complete fix in my updated wiki: http://www.ptlug.org/wiki/Howto_Installing_Maemo_SDK_4