Porting Of QNX Based EXE in Linux

hi I have the GUI Source Code. Which supports QNX Photon.

Now i want to compile this in Linux Environment. To find out the List of Errors and API’s.

So i compiled the Code in Linux. The following Error is displayed.

“gcc: couldn’t run ‘i386-redhat-linux-gcc-gcc_ntox86’: No such file or directory”

how to compile in linux…

Note: i dont need the Executable file… I need the List of API’s From GUI to find it

That looks like a Makefile issue where inside the Makefile it’s specifying the QNX compiler.

Edit the Makefile and specify the compiler you have under Linux.


All Photon APIs will give you errors, because Photon does not exist in Linux. It was a special, high performance low footprint GUI from QNX.

you might be able to port Photon GUI stuff to QT and make it run in Linux. I heard there is even a photon to QT porting tools available from digia or ICS.

Please tell me, how i can identify the “Equivalent Qt calls” for Photon GUI Interface.

You have to learn both.

There are some similarities, but significant differences.
Photon uses a ‘C’ library. It includes chunks of code called Widgets. In general, you create and “realize” (show) widgets. You control their appearance and behavior by setting their resources, usually with PtSetResource(s)(). Callbacks are resources but are set using a different API routine. Widgets are designed hierarchically with the bottom level being a PtWIdget, and the bottom level graphic PtBasic. There is a very rich set of routines that can be used in Photon, generally starting with “Pt” (Photon Toolkit). There are other sets of routines you need to know about, eg. “Px”.

Qt requires ‘C++’. It’s “widgets” are classes, so a programmer can extend a widget by extended the class using the usual C++ hierarchy. Qt uses a pre-processor to implement something called slots and signals. These should not be confused with Unix signals. Slots and signals let objects communicate by sending information back and forth. This should not be confused with QNX message passing either. There are options for one to one, one to many, many to one communication using slots and signals. Callbacks are implemented using this mechanism.

To port a Photon program to Qt you need to understand how Photon programs work, and how Qt programs work. There are some potentially significant details that can be problematic. For example, Photon programs developed with PhAB will have widgets with pre-computed resources. If you don’t have PhAB available, it will be difficult to see what those resources are. You might have to just use the program and guess. There are also some differences in some rules. As I understand it, all Qt Graphics calls must be made in the main thread. Photon provides a way for Pt calls to be made in secondary threads using PtEnter() and PtLeave().

The only tools for porting that I’ve heard of are owned by KDAB and are not available for purchase, though it is possible Digia now provides something. My own experience with Digia is that they like having the QNX market now, but don’t really want to do much support QNX. I believe the recent 5.+ ports have been done by KDAB under contract from QNX.