Cannot build Qt 5.4 for Windows Embedded Compact 7
-
I am struggling to get Qt 5.4 to build for WEC. I am using the Toradex SDK (http://developer.toradex.com/software-resources/arm-family/windows-ce/development-tools#Visual_Studio_2008). I can get it to configure using "Configure –platform win32-msvc2008 –xplatform wince70embedded-armv4i-msvc2008" but build fails with a lot of linking issues like the following:
moc_qabstractitemmodel.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qstringlistmodel.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qeventdispatcher_win_p.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
Qt5Cored_pch.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ) referenced in function "public: __cdecl std::_String_const_iterator<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::~_String_const_iterator<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(void)" (??1?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAA@XZ)
moc_qtimeline.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qfilesystemwatcher_p.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qfilesystemwatcher_polling_p.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qfilesystemwatcher_win_p.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qxmlstream.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qabstractanimation_p.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qfuturewatcher.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
moc_qeasingcurve.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qmimetypeparser.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qmimemagicrule.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qmimeglobpattern.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qmimeprovider.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qsignaltransition.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qeventtransition.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qmimedatabase.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qmimetype.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qstate.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qfinalstate.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qhistorystate.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qabstracttransition.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)
qeventdispatcher_win.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::_Lockit::~_Lockit(void)" (_imp??1_Lockit@std@@QAA@XZ)It then eventually fails with:
....\lib\Qt5Cored.dll : fatal error LNK1120: 24 unresolved externals
I am following these instruction http://doc.qt.io/qt-5/install-wince.html , http://doc.qt.io/qt-5/windowsce-customization.html , http://doc.qt.io/qt-5/requirements-wince.html .
The full output of nmake can be found here https://onedrive.live.com/redir?resid=C4C880935B574748!90413&authkey=!ALtPVXdc7CKS1Uk&ithint=file,txt .
This now the third day that I have been struggling with this and I have finally ran out of thing to try, please help!
-
I guess I should have added this from the beginning but here is the qmake.conf that I came up with:
@# qmake configuration for Windows Embedded Compact 7 with VS2008 on ARM targets
This is just a template for creating WEC7 mkspecs for ARM targets
Replace the SDK name with actual SDK name.
include(../common/wince/qmake.conf)
CE_SDK = SDK2wince7
CE_ARCH = ARMV4IDEFINES += QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL _CRT_SECURE_NO_DEPRECATE _WIN32_WCE=0x700 $$CE_ARCH AMRV7 armv7 ARM
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:THUMB /ENTRY:mainACRTStartup
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:THUMB
QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:THUMB /DLL /SAFESEH:NO
QMAKE_LIBFLAGS_RELEASE = /LTCG
QMAKE_LIBS = corelibc.lib coredll.lib
QMAKE_LIBS_CORE = corelibc.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_LIBS_OPENVG = libopenvg.lib
QMAKE_LIBS_OPENGL_ES2 = libEGL.lib libGLESv2.libQMAKE_RC = rc
QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
QMAKE_COMPILER_DEFINES += _MSC_VER=1500
@ -
Hi Gerhard
when I successfully compiled Qt.5.4 for WEC7 under Win7 with VS2008 platform builder, I used the following command: configure.exe -platform win32-msvc2008 -xplatform wince70embedded-armv4i-msvc2008 -developer-build -qt-style-fusion -opensource -nomake examples -nomake tests -rtti -qt-crt -opengl es2 -no-accessibility -confirm-license
Maybe this info can help you. I built it for the beagleboard xm and against the suiteable SDK.
Cheers J