Are there any USB stick runnable, no-install, cross platform software frameworks (with GUI)? <p>Does anyone know of a good software development framework or similar that has the following properties?</p> <ul> <li>Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux (such as Ubuntu and Kubuntu).</li> <li>No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.</li> <li>Have good GUI support (this is why <a href="http://stackoverflow.com/questions/383757/ok-programming-language-from-usb-stick-with-no-installation">this question</a> doesn't give a suitable answer, as far as I can tell).</li> <li>Permissive licensing such as LGPL or BSD or such.</li> </ul> <p>Among the softer requirements are having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on (There is usually some platform specific adaptations necessary), and supporting a good language such as Python or C++, though it is usually fun to learn a new one (i.e. not perl).</p> <p>I think possible candidates are Qt 4.5 or above (but IFAIK Qt software will not run on Vista without any installation(?)), some wxWidgets or maybe wxPython solution, perhaps gtkmm. The examples I have found have failed on one or another of the requirements. This does not mean that no such examples exist, it just means that I have not found any. So I was wondering if anyone out there know of any existing solutions to this?</p> <p>Some clarifications;</p> <ul> <li>By "framework" I mean something like Qt or gtkmm or python with a widget package.</li> <li>This is about being able to run the finished product on multiple platforms, from a stick, without installation, it is not about having a portable development environment.</li> <li>It is not a boot stick.</li> <li>It is ok to have to build the software specifically for the different targets, if necessary.</li> </ul> <p>The use case I am seeing is that you have some software that you rely on (such as project planning, administration of information, analysis tools or similar) that:</p> <ul> <li>does not rely on having an internet connection being available.</li> <li>is run on different host machines where it is not really ok to install anything.</li> <li>is moved by a user via a physical medium (such as a USB stick).</li> <li>is run on different operating systems, such as Windows, Vista, Ubuntu, OSX.</li> <li>works on the same data on these different hosts (the data can be stored on the host or on the stick).</li> <li>is not really restricted in how big the bundled framework is (unless it is several gigabytes, which is not really realistic).</li> </ul> <p>It is also ok to have parallel installations on the stick as long as the software behaves the same and can work on the same data when run on the different targets. </p> <p>A different view on the use case would be that I have five newly installed machines with Vista, XP, OSX, Ubuntu and Kubuntu respectively in front of me. I would like to, without having to install anything new on the machines, be able to run the same software from a single USB stick (meeting the above GUI requirements and so on) on each of these five machines (though, if necessary from different bundles on the stick).</p> <p>Is this possible?</p> <p>Edit: I have experimented a little with a Qt app that uses some widgets and a sqlite database. It was easy to get it to work on an ubuntu dist and on osx. For windows xp and vista I had to copy QtCored4.dll, QtGuid4.dll, QtSqld4.dll and mingwm10.dll to distribution directory (this was debug code) and I copied the qsqlited4.dll to a folder named "sqldrivers" in the distribution directory.</p>