Developing for cross-platform, on Linux
by The Uni-Hacker on Apr.16, 2008, under Misc
Developing cross-platform software in Linux is actually fairly easy. There are a few various programming languages and environments that you can use to cross-compile applications. Today, our operating systems change almost as often as day and night. You just never know who is using what architecture.

Mono is probably the most robust systems you can develop with. You can create applications that will run without recompilation on Windows, Linux and MAC OSX. MonoDevelop, Mono’s IDE, mimics the .NET development libraries, so many sample Visual Studio.NET programs are compatible, if you have the source code.

GTK is a C++ library that is available on Windows, Mac and Linux. You can use your platforms compiler to build applications using this library. Better yet, you can use the GTK# GUI Builder to create your programs using C# in Mono. I see this as a better idea than using the pure GTK package because then you don’t have to worry about your independent platform’s compiler.

QT could be an option as well, although QT tends to be on the iffy side when it comes to licensing. Although Open Source is nice, you may not be able to release your software as open source when programming with QT. QT’s licensing says the following:
Remember, you must purchase a Commercial License before beginning a proprietary development project. The Commercial License does not allow you to incorporate code developed with the Open Source Editions of Trolltech software into a proprietary project. This means that you cannot begin proprietary development with the Open Source Edition, and then purchase a Commercial License later.
That is a tad harsh to force people to program in their commercial version. At least provide an upgrade.
Your best bets for cross-platform development would be the GTK libraries, Mono, or a combination of both.