Developing with Qt is always interesting for me. First time I met Qt in 2010 when I was looking a nice GUI framework for cross-development. It has a simple and modern design. Many useful features are included, specially i18n and MVC framework which I like the most. My first adventure with Qt was writing a GUI test application for regular expressions. Unfortunately it had never been released. That was not a very good idea to release such a simple tool.
Since last two years I find myself developing applications for windows platform. Almost all of my clients have MS Windows installed on their workstations. (somebody should shout in their head). That’s why I prefer GTK+ and mostly Qt for development. Qt is very interesting to me. I like it the most for many reasons.
Qt 5.0.0 has been released recently. I can’t help to get my own atomic compilation of Qt. (see next par,) So downloaded sources and started to hack away to get it run on the stupid Windows platform. Surprisingly this was much much more complex that it should be…
EBO-Qt is a project aimed to ease open-source development based on Qt platform on Microsoft Windows operating system. This project supports additional third-party libraries mainly from MinGW and other open-source softwares.
For developing Qt Applications you will need either MinGW compiler suite or Microsoft Visual C++ Compiler. Later one is not yet supported by this project. Though there is plan to add MSVC 2012 support in the near future.
You may want to use MinGW suite by Qt developers available at MinGW builds project. Take care of architecture and exception mechanism. This link from Qt wiki will guide you through choosing an appropriate compiler suite considering your needs.
In the case that you already have a compiler suite, you may want to download one or more of EBO components. See the next section for more details.
All builds consists of these three main parts:
- The SDK
- Runtime Libs
- The IDE
Unlike official SDK’s, EBO-SDK do not include a compiler nor IDE. This SDK is made up of headers and shared libraries needed to build Qt applications. It also eliminates an insane redundancy on windows reported here.
Runtime Library installer makes it easier to deploy your Qt applications on various machines. This part is supposed to reduce redundancy of deployment. You no more need to ship all DLLs with your application. RLI copies Qt runtime libraries on the target machine and optionally adds their location to system’s PATH.
- Duo to inconvenience with deployment of applications using different versions of Qt, support for adding plugin path variable (QT_PLUGIN_PATH) to system environment has been dropped since 2013-01-13. Please consider about disabling that option in the case that you are using an older version of installer.
- On Windows platform this is generally a bad idea to install libraries in somewhere visible in PATH scope. You should take care of collisions with other applications that need to link against Qt libraries and does not use EBO.
Qt Creator is available in two versions: standalone and native. if you are planing to use this IDE with a SDK other than which one provided by this project, you will need standalone version. Standalone installer contains everything needed to run Qt Creator. Else if you are planning to use SDK provided by this project, you may want to download native installer. This installer relies on system’s installed versions of Qt libraries. Either choose “add location of SDK’s binary files to system PATH” at installation time of SDK or choose similar option in the installation process of RLI to make run native IDE.
Each subsystem is made up of several components. This section contains general description about components. For more details see each component’s section.
We’ve used a strict convention to tag each package. Name of a package follows this format:
All parts should be lower-case.
Name of the package.
Version string of the package. Usually three or four numbers like 2.6.1. Numbers might followed by a letter. If version string contains the dash character (`-‘), all occurrences will be replaced by underscore.
Application Binary Interface of package. Since this project aims only Windows operating system, the OS part of ABI is dropped. This tag is either mingw or msvc<XXXX> which XXX is either 2012, 2010, 2008 or 2005. There is no support for older versions of Visual Studio compiler.
Can take one of release, debug or release_debug values. Specifies either binaries contain debugging symbols or not. The release_debug value specifies that libraries containing debugging information has a different name than release libraries. It’s usual to add a suffix like `d’ to distinguish debug and release libraries. In the case that any executable is present in package, that will not contain a debugging symbols.
Specifies linkage type of libraries. Can take one of dynamic, static or dynamic_static values. Later one specifies that the libraries are available in both dynamic and static version.
EBO-Qt project consists these components:
|Crypto++||5.6.1||Dynamic + Static||Release + Debug||http://www.cryptopp.com/||☑|
|Qt||5.0.0||Dynamic||Release + Debug||☑|
|AGT||1.0.0||Dynamic + Static||Release + Debug|
|git + git cola|
MinGW Compiler Suite
MinGW, a contraction of “Minimalist GNU for Windows”, is a minimalist development environment for native Microsoft Windows applications.
MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).