By default any calls done by Qt over HTTPS will fail. This is because the OpenSSL it relies on is not included into the distribution that was installed. All you have to do, to make it work, is to download OpenSSL 1.0.xxx library for Windows from here and install to any folder (for example: “C:\OpenSSL”). The tiny 3MB package is enough. Then copy the libeay32.dll and libssl32.dll into developed applications folder (the output one) and it will be automatically picked up during startup.

There is no need to mess anything with Qt at all (and for sure no need to rebuild Qt framework!).

It was also described on StackOverflow, too.


Latest version of QtCreator out of the box installs only Qt 5.0+. That’s rather obvious, but what if someone wants to play a bit with previous edition? Yeap v4.8, the one that is almost 4 years old! It is still doable and I will shortly show the way. Move to TL;DR if you are not interested in the background story.

You could ask why I wanted to do that in the first place, so here is the reason. I am still using a BlackBerry smartphone with BB10 OS onboard. And it’s much easier to develop (and test) a “meaty part” for a native app using the desktop edition of Qt in QtCreator and then only bind it with the UI using Momentics IDE than write everything there and deploy all the time on the device. This is much slower and tiring process, especially when the BB10 device emulator doesn’t work on Windows 10 with Hyper-V enabled…

Let me stop you here, before you start complaining about it. Although the BB10 platform itself is dead and abandoned, the same code can be used to develop Android apps (and of course UWP etc…), so not everything seems to be the waste of time. Download the NDK using Android Studio, use the MaintenanceTool.exe (from Qt installation folder) to add required architecture crosscompilers support and configure the paths, kits and deployment targets in QtCreator with this short guide.

Really, after all you will be much happier person, that Qt is the framework that binds all platforms together.


So how to add Qt 4.8.6 support?

1. First and foremost – Qt installation is required! You can obtain the free version for open-source projects from here. Select the options that suits best and simply install it. I used “C:\Qt” as destination path.

2. From Qt archives download the Qt 4.8.6 installer. I am not going to install VS2008 nor VS2010 on my machines anymore, so I went for MinGW-based version. I recommend using “C:\Qt\4.8.6” as the destination path, as it will be next to 5.10.0 version and will also simplify further configuration.

3. Matching MinGW compiler can be downloaded from here (ended at location: “C:\mingw32”)

4. Launch QtCreator and open “Tools –> Options”. Now we need to define locations for all the compilers, debuggers etc.

5.  Add new Qt Version. Use the ‘Add…’ button on the right and navigate for qmake.exe in 4.8.6 installation folder.


6. On “Compilers” tab add new MinGW C compiler (gcc.exe).


7. Then add MinGW C++ compiler (g++.exe).


8. On “Debuggers” tab add appropriate GDB from MinGW folder.


9. Finally on “Kits” tab bind all the tools added in steps above.


10. Voilà. Now the newly created kit can be using to build future projects.


It might happen, that the application won’t start. It’s mostly because there are some DLLs the output executable depends on (like: QtCore4.dll, QtNetwork4.dll, libgcc_s_dw2-1.dll, libstdc++-6.dll, libwinpthread-1.dll or their debug editions). The easiest way is to copy them from Qt 4.8.6 installation directory into the debug-build folder (i.e.: <project>/../build-<kit>-<platform>/debug) manually, setup it up as a post-build step or make the DLLs generally visible by adding Qt 4.8.6/bin folder into PATH environment variable.


Although the PlayBook tablet was totally abandoned by BlackBerry long time ago and there are other problems around the company I still wish them well. That’s why I continuously support the BlackBerry Native Development plugin for Visual Studio. Recent additions were about Visual Studio 2015 RC and most notably PlayBook and Qt-4.8.3 support. I hope it will inspire you and myself to write some applications on it.

Thankfully lack of support from BlackBerry is the best thing they could do to PlayBook. It’s OS software is not bloated with useless features and even if you count it to be 4-years-old tablet with only 1GHz clock and 1GB of RAM applications run fast and fluid. Most notably it’s now so damn cheap to buy, if you plan to do some IoT, that it compares with Raspberry Pi 2 and has SD and screen already attached.

The problem however is lack of a common UI framework that could work out-of-the-box. Until now. BlackBerry tried to support few approaches to enable developers. One was Adobe Air, but somehow I am not so keen to port anything to ActionScript. Another one was Android Runtime to let do some Java programming. This was better, but the best option to me appeared their involvement in Qt framework (and more here). This allows going down to the bare C/C++ coding for maximum efficiency etc. Officially the last version dedicated to PlayBook was Qt-4.8.3. Unfortunately it was never published and never integrated with any IDE. They probably moved all forces to support upcoming BB10 platform at that time.

If you look closely on PlayBook NDK 2.1 you will find some Qt libraries in it, but they don’t tend to work (maybe because the lack of platform-specific libblackberry.so included?). There is even officially published guide, how to build it from sources on Linux machine. I however learnt more from improved versions created by community around how to integrate it with Momentics (more here) and build and tried it several times on my own. As a result I even prepared my own guide, how to build it on Windows. But please, being serious, who wants to do that before writing application? Answer is obvious – no one. There should be no barrier like that and if you count them all, you will know, why BlackBerry failed in the Mobile World War. I always say – small things to matter.


What I really did? I enabled basic Qt types of project via BlackBerry Native Development plugin inside Visual Studio. There are 2 simple steps (assuming you have the plugin configured and NDK 2.1 installed), but I will work on improving it and making down to 1:

1. Create new project in Visual Studio 2013: File –> New –> Project… –> BlackBerry Projects –> Qt –> PlayBook Qt4 Core Application


2. make sure following NuGet packages are installed:

* codetitans-playbook-qt4-core – that injects base libraries into the project (and bar-descriptor.xml) and setups headers for successful compilation

* codetitans-playbook-qt4-qml – it will enable QML development inside the application (QtQuick) and actually let you compile samples from Qt website.

Are there any issues?

Sure they are:

  • First and the biggest is that all .moc files have to be created manually (tools for Windows available here). I am working on another NuGet package that will fix it, but it’s not finished yet.
  • Compilation might generate lots of warnings like: “warning : the mangling of 'va_list' has changed in GCC 4.4”. This can be disabled by adding this switch “-Wno-psabi” for the compiler (Project properties –> C/C++ –> Command Line –> Additional Options).
  • The final .bar file deployed for device can be quite big (~20MB at startup) as all required Qt libraries need to be included.
    There is a workaround to put them once to the user’s home folder, when doing development and skip placing them in a .bar file for that time, but haven’t verified it yet.

Post scriptum

This whole project started mostly as a result of my IoT midnight plays and lack of real file manager for PlayBook. Thankfully I found very old project from Kevin Boone named kfile. He also created an introduction, how to make Qt apps on PlayBook and was so kind to share sources. I test the NuGet packages and Visual Studio plugin against this code and plan to publish it in AppWorld shortly.