2014-12-30 94 views
0

我正在努力爲WEC構建Qt 5.4。我正在使用Toradex SDK(http://developer.toradex.com/software-resources/arm-family/windows-ce/development-tools#Visual_Studio_2008)。我能得到它使用「配置-platform Win32的msvc2008 -xplatform wince70embedded-ARMV4I-msvc2008」,但構建失敗了大量的連接問題,如以下配置:無法爲Windows Embedded Compact 7構建Qt 5.4

moc_qabstractitemmodel.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qstringlistmodel.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qeventdispatcher_win_p.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
Qt5Cored_pch.obj : error LNK2019: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::Lockit(void)」 ([email protected]@@[email protected]) 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)」 ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
moc_qtimeline.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qfilesystemwatcher_p.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qfilesystemwatcher_polling_p.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qfilesystemwatcher_win_p.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qxmlstream.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qabstractanimation_p.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qfuturewatcher.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
moc_qeasingcurve.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qmimetypeparser.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qmimemagicrule.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qmimeglobpattern.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qmimeprovider.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qsignaltransition.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qeventtransition.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qmimedatabase.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qmimetype.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qstate.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qfinalstate.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qhistorystate.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qabstracttransition.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 
qeventdispatcher_win.obj : error LNK2001: unresolved external symbol 「__declspec(dllimport) public: __cdecl std::Lockit::~_Lockit(void)」 ([email protected]@@[email protected]) 

然後它最終失敗:

.... \ LIB \ Qt5Cored.dll:致命錯誤LNK1120:24層無法解析的外部

我這些指令http://doc.qt.io/qt-5/install-wince.htmlhttp://doc.qt.io/qt-5/windowsce-customization.htmlhttp://doc.qt.io/qt-5/requirements-wince.html以下。

nmake的完整輸出可以在這裏找到https://onedrive.live.com/redir?resid=C4C880935B574748!90413&authkey=!ALtPVXdc7CKS1Uk&ithint=file,txt

這是我一直在爲此苦苦掙扎的第三天,我終於用盡了一切,請幫忙!

編輯: 我想我應該從一開始就加入這一點,但這裏是我想出了qmake.conf:

# 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     = ARMV4I 

DEFINES    += 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.lib 

QMAKE_RC    = rc 

QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 
QMAKE_COMPILER_DEFINES += _MSC_VER=1500 

回答

0

似乎與這個問題: What std::_lockit does? 你構建調試版本還是啓用某些調試功能? 我會在內部檢查是否有人已經在CE上構建了此版本並通知您。

+0

好的,謝謝,我不知道是否有任何調試設置設置,我真的沒有任何建立Qt的經驗,我只是遵循標準的構建過程,因爲我找不到預編譯的二進制文件 – Gerharddc

+0

我是一位BSP /驅動程序開發人員,對Qt有很少的經驗。 –

+0

對不起,但錯過了我的部分評論:) 在我們的網站上,你可以找到一些二進制文件: http://developer.toradex.com/knowledge-base/qt-on-the-toradex-modules 但這些是爲v 4.8。 您的應用程序中是否需要某些5.4特定功能? 對於Qt專業知識,我們依賴於我們的合作伙伴KDAB: http://www.kdab.com/services/platforms/qt-for-windows-ce/ 對不起,但很多人都在假期(包括我自己:) )並且獲得快速答案可能會很複雜。 –

相關問題