Compile Qt 5.6 for Windows Ce 6.0 linking issue

Z Zoltan Gyarmati 3 years ago
29 0 0

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.h…
 
Did anybody else seen (or even fixed...) this issue?

CONTACT
Can’t find what you’re looking for?