[SOLVED] Adding a QNX device to QT5 or any Qt
I am trying to add a Qnx device to QT so to try and develop my Qt GUI on my windows host and then deploy it onto a x86 device running QNX neutrino.
When I run the test to see whether the target device is found I get the following error:
"Connecting to host...
SSH connection failure: Connection refused
Device test failed."
Does anyone know what the reason of this error is and how I fix it?
Do I need to enable ssh on the target running QNX neutrino? If so, How do I do it? The qnx user manual doesn't seem to say anything about this.
Many Thanks in adance
When developping for remote targets, QtCreator use ssh and scp to deploy your files on the target, and run your application. It also uses gdbserver for debugging.
So yes you have to enable this functionnality (OpenSSH under QNX), and then configure your target in QtCreator with the appropriate ip address / login / password.
Many thanks for your help. I configured and started sshd on the QNX target machine and it worked.
However I now have another issue:
After various problems already encountered, I have this major issue.
I am trying to do the following:
Developing a simple gui application on QT5 that I want to deploy on an x86 target pc running qnx Neutrino 6.5.0 (it’s just one widget). The details to do that are in:
I encounter a problem when trying to select a “QT version” on “QT creator” which is step 2 of the mentioned procedure above. This is because my host development machine is WIndows XP (therefore I am using QT for WIN2010 and the related “Qt 5.0.2 MSVC2010 32bit” as my qt version).
Is there a way to resolve this inconsistency?
Do I need to install a QT version for qnx or an embedded device too, on my windows host and select that from the Otpions in Creator? Would this work?
If so, where do I find such an item for Qt5?
Do you know how to overcome this problem? Am I misunderstanding /missing something?
Many Thanks for your help
Yes you need to have Qt version for QNX, you need to have it on target device and on your Windows device. Qt creator will use this library and QNX compiler on your machine to crosscompile your application.
You can follow "this":http://qt-project.org/doc/qt-5.0/qtdoc/platform-notes-qnx.html to build Qt5 for QNX.
Edit: thanks portoist for pointing the right link, was too slow ;)
When developping for an embedded device, you need a Qt version dedicated (or at least compiled) for this plateform.
So when cross compiling, you have your "host" Qt version, here your MSVC2010 version, and the "device" Qt version, including all the binaries compiled for that precise platform (different compiler and/or build options).
The "host" version is optional as it is only needed to be able to run your application on your windows for testing purposes.
So basically you have two Qt directories/version. You usually have to build the "device" one yourself, which means:
- Extracting your sources to the new device Qt version directory
- (Optionnally modifying/creating the plateform specific mkspec file, containing compiler/linker path, etc.)
- In a terminal, running "configure" to well... configure your Qt version. Here you would use "-platform win32-msvc2010" and "-xplaform linux-qnx-something" as options. The "platform" option represents the host machine architecture, and the "xplatform" option represents the target machine architecture. The string used after each option is the name of a mkspecs directory (see QtBase/mkspecs directory in your Qt sources)
- Run qmake and make, which should end up with a valid Qt version built specifically for your target.
Here is a link for further information to cross compile for linux embedded, from Linux (Qt 4.8, not 5).
Note that to cross compile for a Linux embedded target, it is way easier to have a linux host. If this is something you can do, Ubuntu is really accessible and has a bunch of tools to do that kind of development.