0 Replies Latest reply on Jul 26, 2017 2:02 AM by Zoltan Gyarmati

    Compile Qt 5.6 for Windows Ce 6.0 linking issue

    Zoltan Gyarmati

      Dear Community,

       

      i'm trying to  cross-compile Qt 5.6 for Windows CE 6.0 for MC3190. I have VS2008 set up, and the vendor's SDK (Motorola MC3100c60 Windows CE6.0 PSDK (ARMV4I)) installed, and i can compile/run a simple testapp from VS2008.

      I set up a custom qmakespec for Qt, here:

       

      ```

      include(../common/wince/qmake.conf)

       

      CE_SDK                  = Motorola MC3100c60 Windows CE6.0 PSDK # replace with actual SDK name

      CE_ARCH                 = ARMV4I

       

      DEFINES += WINCE _WINDOWS WINDOWS_CE_OS _WIN32_WCE=0x600 UNDER_CE=0x600 ARM ARM ARMV4I _CRT_SECURE_NO_DEPRECATE $$CE_ARCH QT_NO_CLIPBOARD

      DEFINES += QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NO_DRAGANDDROP QT_NO_WIN_ACTIVEQT QT_NOSTANDARDSHELL_UI_MODEL ARMV4I _M_ARM arm  _ARM_ ARM _M_ARM ARM _WIN32 __arm__

       

       

      QMAKE_LFLAGS_CONSOLE    = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB

      QMAKE_LFLAGS_WINDOWS    = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB

      QMAKE_LFLAGS_DLL        = /MACHINE:THUMB /DLL /SAFESEH:NO /VERBOSE

       

      QMAKE_LIBFLAGS_RELEASE  = /LTCG

      QMAKE_LIBS              = coredll.lib corelibc.lib

      QMAKE_LIBS_CORE         = corelibc.lib libcmt.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib

      QMAKE_LIBS_GUI          = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE

      QMAKE_LIBS_NETWORK      = ws2.lib $$QMAKE_LIBS_GUI

      QMAKE_LIBS_OPENGL       =

      QMAKE_LIBS_COMPAT       =

       

      QMAKE_RC                = rc /DUNDER_CE=600 /D_WIN32_WCE=0x600

       

      ```

       

      and i configure Qt from the corresponding environment as:

       

      ```

      configure -platform win32-msvc2008 -xplatform wince60standard-armv4i-msvc2008 -opensource -nomake examples -no-compile-examples -qt-zlib -no-accessibility -no-native-gestures -qt-pcre -no-icu -no-gif -qt-libpng -no-opengl -skip winextras -confirm-license -verbose -release

      ```

      The configure runs properly, but when building, the linking of QtCore  fails with:

      ```

      corelibc.lib(crtstrta.obj) : error LNK2019: unresolved external symbol main referenced in function "void __cdecl mainCRTStartupHelper(struct HINSTANCE__ *,unsigned short const *)" (?mainCRTStartupHelper@@YAXPAUHINSTANCE__@@PBG@Z)

      ..\..\lib\Qt5Core.dll : fatal error LNK1120: 1 unresolved externals

      ```

      however, according to my understanding, it shouldn't look for 'main', but for "WinMain", which is in winmain_qt.cpp.

      I've tried to specify custom \ENTRY points on the linker command line, but after that the linker was still looking for 'main()'.

      Unfortunately my google-fu didn't help too much, i found only this unanswered question at the Qt devel mailing list:

      http://lists.qt-project.org/pipermail/development/2014-October/018645.html

       

      Did anybody else seen (or even fixed...) this issue?