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?
Compile Qt 5.6 for Windows Ce 6.0 linking issue |
0 Replies