Use/build Qt libraries for wince80colibri-arm7 (Visual Studio 2015)

@aholza

Hi,
I am trying to get Qt 5.6 (any Qt >= 5.x would be good as well) working for Windows CE 8 (colibri) but soon ran in some problems and need help.

I installed the Toradex SDK for Win CE 8 (2013) and ran cofigure from Visual Studio 2015 Developer Prompt:

configure -platform win32-msvc2015 -xplatform wince80colibri-armv7-msvc2012 -rtt
i -mp -ltcg -release -opensource -confirm-license -no-compile-examples -nomake t
ests -opengl es2 -openvg -skip qtandroidextras -skip qtactiveqt -skip qtsensors
-prefix %CD%\SDK

it finishes with:

...
Environment:
    INCLUDE=
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\ucrt
      C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\shared
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\winrt

    LIB=
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB
      C:\Program Files (x86)\Windows Kits\10\lib\10.0.10586.0\ucrt\x86
      C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86
      C:\Program Files (x86)\Windows Kits\10\lib\10.0.10586.0\um\x86

    PATH=
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExte
nsions\Microsoft\TestWindow
      C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\
      C:\Program Files (x86)\MSBuild\14.0\bin
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
      C:\Windows\Microsoft.NET\Framework\v4.0.30319
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\VCPackages
      C:\Program Files (x86)\HTML Help Workshop
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance
 Tools
      C:\Program Files (x86)\Windows Kits\10\bin\x86
      C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
\
      C:\Perl64_2nd\site\bin
      C:\Perl64_2nd\bin
      C:\Python27\
      C:\Python27\Scripts
      C:\Perl64\site\bin
      C:\Perl64\bin
      C:\ProgramData\Oracle\Java\javapath
      C:\Program Files (x86)\AMD APP\bin\x86_64
      C:\Program Files (x86)\AMD APP\bin\x86
      C:\Windows\system32
      C:\Windows
      C:\Windows\System32\Wbem
      C:\Windows\System32\WindowsPowerShell\v1.0\
      c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\
      C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static
      C:\Program Files (x86)\MySQL\MySQL Utilities 1.3.4\
      C:\Program Files\TortoiseSVN\bin
      C:\Program Files\doxygen\bin
      %USERPROFILE%\.dnx\bin
      C:\Program Files\Microsoft DNX\Dnvm\
      C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
      C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
      C:\Program Files (x86)\nodejs\
      C:\Program Files\Git\cmd
      C:\Strawberry\c\bin
      C:\Strawberry\perl\site\bin
      C:\Strawberry\perl\bin
      C:\Qt\Qt5.6.0\5.6\msvc2015\bin
      C:\Program Files\Microsoft\Web Platform Installer\
      C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\
      C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
      C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
      C:\Ruby22-x64\bin
      C:\Users\Seili\AppData\Roaming\npm
      C:\Qt\qt-everywhere-opensource-src-5.6.0\qt-everywhere-opensource-src-5.6.
0
Configuration:
    pcre
    release
    msvc_mp
    cross_compile
Qt Configuration:
    minimal-config
    small-config
    medium-config
    large-config
    full-config
    release
    shared
    zlib
    png
    freetype
    harfbuzz
    accessibility
    opengl
    opengles2
    egl
    openvg
    egl
    dbus
    audio-backend
    native-gestures
    qpa
    concurrent

QMAKESPEC...................wince80colibri-armv7-msvc2012 (commandline)
Architecture................arm, features:
Host Architecture...........i386, features: sse sse2
Maketool....................nmake
Debug.......................no
Force debug info............no
C++ language standard.......auto
Link Time Code Generation...yes
Accessibility support.......yes
RTTI support................yes
SSE2 support................no
SSE3 support................no
SSSE3 support...............no
SSE4.1 support..............no
SSE4.2 support..............no
AVX support.................no
AVX2 support................no
NEON support................no
OpenGL support..............yes
Large File support..........no
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............yes
SSL support.................no
OpenSSL support.............no
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........no
Use system proxies..........no

QPA Backends:
    GDI.....................yes
    Direct2D................no

Third Party Libraries:
    ZLIB support............qt
    GIF support.............plugin
    JPEG support............plugin
    PNG support.............yes
    FreeType support........yes
    Fontconfig support......no
    HarfBuzz support........qt
    PCRE support............qt
    ICU support.............no
    ANGLE...................no
    Dynamic OpenGL..........no

Styles:
    Windows.................yes
    Windows XP..............no
    Windows Vista...........no
    Fusion..................no
    Windows CE..............yes
    Windows Mobile..........yes

Sql Drivers:
    ODBC....................no
    MySQL...................no
    OCI.....................no
    PostgreSQL..............no
    TDS.....................no
    DB2.....................no
    SQLite..................plugin (qt)
    SQLite2.................no
    InterBase...............no

Sources are in..............C:\Qt\qt-everywhere-opensource-src-5.6.0\qt-everywhe
re-opensource-src-5.6.0\qtbase
Build is done in............C:\Qt\Qt5.6.0\qtbase
Install prefix..............C:\Qt\Qt5.6.0\SDK
Headers installed to........C:\Qt\Qt5.6.0\SDK\include
Libraries installed to......C:\Qt\Qt5.6.0\SDK\lib
Arch-dep. data to...........C:\Qt\Qt5.6.0\SDK
Plugins installed to........C:\Qt\Qt5.6.0\SDK\plugins
Library execs installed to..C:\Qt\Qt5.6.0\SDK\bin
QML1 imports installed to...C:\Qt\Qt5.6.0\SDK\imports
QML2 imports installed to...C:\Qt\Qt5.6.0\SDK\qml
Binaries installed to.......C:\Qt\Qt5.6.0\SDK\bin
Arch-indep. data to.........C:\Qt\Qt5.6.0\SDK
Docs installed to...........C:\Qt\Qt5.6.0\SDK\doc
Translations installed to...C:\Qt\Qt5.6.0\SDK\translations
Examples installed to.......C:\Qt\Qt5.6.0\SDK\examples
Tests installed to..........C:\Qt\Qt5.6.0\SDK\tests
Using c runtime detection...yes
Cetest support..............no
Signature...................no




Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

No obvious errors I guess, but after running nmake (or nmake clean) I got:

...
Microsoft (R) Program Maintenance Utility, Version 14.00.23506.0
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

        link /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB /INCREMENTAL:NO /SUBSYSTEM:WINDO
WSCE,8.00 /MACHINE:ARM /DLL /SAFESEH:NO /LTCG /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE
:ARM /VERSION:5.6 /OUT:..\..\lib\Qt5Network.dll @C:\Users\Seili\AppData\Local\Te
mp\nm36AE.tmp
LINK : fatal error LNK1181: cannot open input file 'dnsapi.lib'
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Windows CE Tools\SDKs\Torade
x_CE800\sdk\bin\i386\arm\link.EXE"": Rückgabe-Code "0x49d"
Stop.
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0
\VC\BIN\nmake.exe"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.

It seems that some files from the Toradex SDK are missing, at least dnsapi.lib
Has someone a solution for this?

My second question would be:
According to [Qt 5.6 auf den Toradex Colibri Modulen mit WEC2013] there is some kind of out of the box solution. It seems to be exactly what I was looking for, but I can’t really find more information on this. Are there further information or maybe some ready to use libraries (like the Qt 4.8.4 ones for Win CE 6/7) available?

Thanks for your help in advance,

Johannes
HelSe Software GbR

Hey,

yes it seems the Toradex SDK is missing the required dnsapi. I was provided with those and I was under the impression that in later SDK’s its integrated, but it does not look like it, sorry. I did contact Toradex what they want todo with the issue. You could ask the Toradex support if they will give you the missing library, or you download their BSP and add the checkbox for dnsapi catalog in there and build it on your own.

Right now there is no out of the box solution, as Qt is moving rather fast and there are not too many Windows Embedded Compact developers out there which are paying license fees, so the budget is very limited, hence there are no prebuild binaries.

I hope you understand this.

Thank you

Andy KDAB

We streamlined our BSPs recently and and plan to release a new SDK for CE8, that actually contains the dnsapi feature.

Hi,
Toradex Support has send us the needed file (thanks again).
I guess the nmake process runs a little further but fails again, first here:

qwindowsysteminterface.cpp
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vcruntime.h(92) : warning C4005: '_CRT_STRINGIZE' : macro redefinition
        C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\crtdefs.h(72) : see previous definition of '_CRT_STRINGIZE'
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vcruntime.h(95) : warning C4005: '_CRT_WIDE' : macro redefinition
        C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\crtdefs.h(77) : see previous definition of '_CRT_WIDE'
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vcruntime.h(156) : warning C4005: '__CRTDECL' : macro redefinition
        C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\crtdefs.h(556) : see previous definition of '__CRTDECL'
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vcruntime.h(283) : warning C4005: '_CRT_WARNING' : macro redefinition
        C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\crtwrn.h(24) : see previous definition of '_CRT_WARNING'
C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\ucrt\corecrt.h(143) : warning C4005: '__FILEW__' : macro redefinition
        C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\crtdefs.h(564) : see previous definition of '__FILEW__'
C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\ucrt\corecrt.h(144) : warning C4005: '__FUNCTIONW__' : macro redefinition
        C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\crtdefs.h(565) : see previous definition of '__FUNCTIONW__'
C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\ucrt\corecrt.h(205) : fatal error C1189: #error :  Compiling Desktop applications for the ARM platform is not supported.

… and at the end with:

NMAKE : fatal error U1077: ""C:\Program Files (x86)\Windows CE Tools\SDKs\Torade
x_CE800\sdk\bin\i386\arm\cl.EXE"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0
\VC\BIN\nmake.exe"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.

Again, any help is appreciated.

Greeting,
Johannes Günther

Looks like Desktop and Windows Embedded Compact builds are getting mixed. As you can cleanly see he tries to use one time the wince sdk headers and one from the Windows SDK. Hence check QtCore generated Makefile(qtbase\src\corelib\Makefile.Release)

At the beginning of the file there should be something like this:
INCLUDE = $(VCINSTALLDIR)\ce7\include;$(VCINSTALLDIR)\ce\include;C:\Program Files (x86)\Windows CE Tools…

Could you paste that line into here? And also check if it somehow contains Windows SDK paths like C:\Program Files (x86)\Windows Kits\10\include If yes then something is really strange.

The problem might be, that not all headers are installed. I have no dir \Microsoft Visual Studio 14.0\VC\include\ce nor \Microsoft Visual Studio 14.0\VC\ce. Are these headers part of the sdk?

In my old Studio 2008 I had these headers.

Here my Makefile.Release include part:
INCLUDE = C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\sys;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Include\stl;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\atlmfc\Include;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\Inc;;$(INCLUDE)
LIB = C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\crt\Lib\arm;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\atlmfc\lib\arm;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\Lib\armv7\debug;C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\sdk\Lib\armv7\retail;

A windows Kits path is not found in that file, so it is not really strange :).

Thank you.

Greetings, Johannes

Ok these lines look line mine as well.

The difference is that I am using a VS2012 command line, as Windows Embedded Compact does use the VS2012 compiler in any way for the embedded side. Could you supply a full log, maybe as attachment?

Also looks like he is stuck in QtGui, did he build QtCore already? Could you check that?

Thank you

Andy

link text

Hi. attached the full log.
I have:

  • Qt5Bootstrap.lib
  • Qt5Core.lib
  • Qt5Network.lib
  • Qt5Sql.lib
  • Qt5Xml.lib
  • qtharfbuzzng.lib
  • qtmain.lib
  • qtpcre.lib

in my qtbase\lib folder.
If I run “nmake install” despite the errors I also get:

  • Qt5Core.dll
  • Qt5Network.dll
  • Qt5Sql.dll
  • Qt5Xml.dll

in my SDK\bin folder.

Thank you;
Greetings
Johannes

We have released a new SDK (2.0.2) that contains the dnsapi.lib. You can download it here: Toradex Documents - Toradex CE8 SDK

Hello Johannes, were you able to finally build successfully? I too am having a problem. See my post, if interested: Build Qt for wince80colibri-arm7 using Visual Studio 2013 - Technical Support - Toradex Community

Thanks,
Mike