Windows Dressing The Abbreviated Guide to Running Qt on Embedded Windows
Microsoft Windows has a long history of embedded operating systems going back to 1996, branded as Windows Embedded Compact, Windows Embedded CE, Windows CE, Windows Compact, Windows Phone, Windows Runtime, and an assortment of others. One of these fine platforms might even form the basis of your embedded product. Trouble is, with the shiny new Windows 10 IoT now on the horizon, this Windows Embedded family isn’t getting the love it used to.
Building a user interface? Let’s just hope your app isn’t still on MFC. Wait… it is? Sorry about that!
If you’re thinking about updating your Windows Embedded legacy app, you’ll need an updated UX framework: lightweight enough for real-time, powerful enough to support modern GPUs, kitted up with a huge assortment of cross-platform tools, and supported by a host of companies.
You can see where I’m going with this… you guessed it: Qt.
Assuming you want to facelift your Windows Embedded platform to use Qt, you’ve got one of three choices:
|Release date||March 2011|
|MS tool version||Visual Studio 2008|
|Qt version||Up to Qt 5.6 LTS (Long Term Support)|
|Architectures supported||x86, ARMv4+ (and derivatives)|
|Release date||June 2013|
|MS tool version||Visual Studio 2012 (2013/2015 x86 only)|
|Qt version||Qt 5.6 LTS (Long Term Support)|
|Architectures supported||x86, ARMv7T2 (and derivatives)|
|Release date||July 2015|
|MS tool version||Visual Studio 2015|
|Qt version||Qt 5.7|
|Architectures supported||x86 (all variants), ARM (Mobile Enterprise and Core)|
What’s the fine print? Like many things in life, no choice is perfect.
- WinCE7 requires you to be using Qt 5.6 or earlier. But if you’ve got a WinCE7-based project already, this will certainly be the path of least resistance. KDAB has done the necessary work in Qt 5.6 to support WinCE7.
- WinEC2013 on ARM requires Visual Studio 2012 for the right cross-compiler, and you’ll be using Qt 5.6. Unfortunately, you can’t use the more modern compilers in VS2013 or VS2015. x86 compiling should work on Visual Studio 2012-2015, although that highly limits your embedded target hardware. Similar to WinCE7, our changes to Qt 5.6 for WinEC2013 support are upstream.
- Windows 10 IoT is still a bit of a moving target, but the Qt Company will be adding experimental support for it to Qt 5.7. If you don’t want to be building against an experimental drop, you may be better off sticking with one of the earlier two options.
Undertaking a move from a Windows-native UX framework to a Qt-based one isn’t for the faint of heart but it can be your important first step to making your application platform independent. (And it’s something that we at KDAB have a lot of experience doing should you need a bit of help.)
Likewise, getting all the right components, builds, compilers, libraries together for a solid tool chain isn’t supported out-of-the-box by anyone. We’re hoping to solve this problem in a better fashion. We’re working with Toradex—one of the world’s leading providers of windows embedded based Systems on Chip—on providing a Windows SOC with pre-built binaries and Qt installers. It’s not done yet, but keep watching this space for breaking news.
Any other Windows + Qt questions? Good tips or tricks? Post them in the comments!