WEC7的Qt 5库生成失败

WEC7的Qt 5库生成失败,qt,windows-ce,Qt,Windows Ce,我正在尝试为WEC7构建Qt5.3.2库。为此,我遵循了这些准则: 如果满足所有要求。我的设置: VisualStudio2008专业版SP1 活动Perl 5.3.16 Windows嵌入式Compact 7 ARM平台:飞思卡尔i.MX6 我创建了一个自定义构建规范: 基于wince70embedded-armv4i-msvc2008创建了wince70embedded-iMX6-msvc2008 设置CE_SDK=phyFLEX-i.MX6 SDK 设置CE\u ARCH=A

我正在尝试为WEC7构建Qt5.3.2库。为此,我遵循了这些准则:

如果满足所有要求。我的设置:

  • VisualStudio2008专业版SP1
  • 活动Perl 5.3.16
  • Windows嵌入式Compact 7
  • ARM平台:飞思卡尔i.MX6
我创建了一个自定义构建规范:

  • 基于wince70embedded-armv4i-msvc2008创建了wince70embedded-iMX6-msvc2008
  • 设置
    CE_SDK=phyFLEX-i.MX6 SDK
  • 设置
    CE\u ARCH=ARMv4I
  • 在CE、
    WINCE
    $(ARCHFAM)
    $(ARCHFAM)
    UNICODE
    下添加了预处理器定义
后来我

  • 将C:\Qt\5.3.2\u CE\qtbase\bin添加到
    PATH
  • 使用vcvars32.bat设置环境变量
  • 配置-平台win32-msvc2008-xplatform wince70embedded-iMX6-msvc2008
  • 使用nmake构建
一段时间后,生成失败,原因是:

rror C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(91) : e
rror C2143: syntax error : missing ';' before '}'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C3203: 'QPointer' : unspecialized class template can't be used as a templat
e argument for template parameter 'T', expected a real type
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2955: 'QPointer' : use of class template requires template argument list
        c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qmetatype.
h(1264) : see declaration of 'QPointer'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'isStatic' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'isLarge' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2027: use of undefined type 'QPointer'
        c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qmetatype.
h(1264) : see declaration of 'QPointer'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'isPointer' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'isIntegral' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C3203: 'QPointer' : unspecialized class template can't be used as a templat
e argument for template parameter 'T', expected a real type
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2955: 'QPointer' : use of class template requires template argument list
        c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qmetatype.
h(1264) : see declaration of 'QPointer'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2955: 'QtPrivate::is_integral' : use of class template requires template a
rgument list
        c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/global/qtypetrait
s.h(219) : see declaration of 'QtPrivate::is_integral'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'isDummy' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'sizeOf' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2027: use of undefined type 'QPointer'
        c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qmetatype.
h(1264) : see declaration of 'QPointer'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(92) : e
rror C2143: syntax error : missing ',' before '}'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(95) : e
rror C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(96) : e
rror C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(99) : e
rror C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(100) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(103) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(104) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(107) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(107) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(107) :
error C2065: 'o' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(107) :
error C2143: syntax error : missing ',' before ')'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(108) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(111) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(111) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(112) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(115) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(116) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(119) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(120) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(123) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(124) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(127) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(127) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(127) :
error C2065: 'o' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(127) :
error C2143: syntax error : missing ',' before ')'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(128) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(131) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(131) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(132) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(135) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(137) :
error C2143: syntax error : missing ';' before '{'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(138) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(138) :
error C2065: 'T' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(138) :
error C2059: syntax error : '>'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(138) :
error C2059: syntax error : ')'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(139) :
error C2143: syntax error : missing ';' before '}'
c:\qt\5.3.2_ce\qtbase\include\qtcore\../../src/corelib/kernel/qpointer.h(139) :
fatal error C1003: error count exceeds 100; stopping compilation
qaccessiblecache.cpp
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(72) : error C2143:
 syntax error : missing ';' before '*'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(72) : error C4430:
 missing type specifier - int assumed. Note: C++ does not support default-int
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(72) : error C2653:
 'QAccessible' : is not a class or namespace name
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(72) : error C2061:
 syntax error : identifier 'Id'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(72) : error C4430:
 missing type specifier - int assumed. Note: C++ does not support default-int
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(72) : warning C418
3: 'interfaceForId': missing return type; assumed to be a member function return
ing 'int'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(73) : error C2653:
 'QAccessible' : is not a class or namespace name
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(73) : error C2146:
 syntax error : missing ';' before identifier 'insert'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(73) : error C4430:
 missing type specifier - int assumed. Note: C++ does not support default-int
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(73) : error C2061:
 syntax error : identifier 'QAccessibleInterface'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(73) : error C4430:
 missing type specifier - int assumed. Note: C++ does not support default-int
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(73) : warning C418
3: 'insert': missing return type; assumed to be a member function returning 'int
'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(74) : error C2653:
 'QAccessible' : is not a class or namespace name
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(74) : error C2061:
 syntax error : identifier 'Id'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(85) : error C2653:
 'QAccessible' : is not a class or namespace name
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(85) : error C2146:
 syntax error : missing ';' before identifier 'acquireId'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(85) : error C4430:
 missing type specifier - int assumed. Note: C++ does not support default-int
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(85) : error C4430:
 missing type specifier - int assumed. Note: C++ does not support default-int
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(85) : warning C418
3: 'acquireId': missing return type; assumed to be a member function returning '
int'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(87) : error C2653:
 'QAccessible' : is not a class or namespace name
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(87) : error C2065:
 'Id' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(87) : error C2065:
 'QAccessibleInterface' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(87) : error C2059:
 syntax error : '>'
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(88) : error C2653:
 'QAccessible' : is not a class or namespace name
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(88) : error C2065:
 'Id' : undeclared identifier
c:\qt\5.3.2_ce\qtbase\src\gui\accessible\qaccessiblecache_p.h(97) : error C2143:
 syntax error : missing ';' before '}'
accessible\qaccessiblecache.cpp(52) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(52) : error C2653: 'Q_QGS_qAccessibleCache' : is
 not a class or namespace name
accessible\qaccessiblecache.cpp(52) : error C2065: 'innerFunction' : undeclared
identifier
accessible\qaccessiblecache.cpp(52) : error C2653: 'Q_QGS_qAccessibleCache' : is
 not a class or namespace name
accessible\qaccessiblecache.cpp(52) : error C2065: 'guard' : undeclared identifi
er
accessible\qaccessiblecache.cpp(55) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(57) : error C2143: syntax error : missing ';' be
fore '}'
accessible\qaccessiblecache.cpp(64) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(65) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(66) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(66) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(67) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(69) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(76) : error C2143: syntax error : missing ';' be
fore '}'
accessible\qaccessiblecache.cpp(79) : error C2143: syntax error : missing ';' be
fore '}'
accessible\qaccessiblecache.cpp(81) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(82) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(84) : error C2143: syntax error : missing ';' be
fore '}'
accessible\qaccessiblecache.cpp(86) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(86) : error C2065: 'QAccessibleInterface' : unde
clared identifier
accessible\qaccessiblecache.cpp(86) : error C2065: 'iface' : undeclared identifi
er
accessible\qaccessiblecache.cpp(86) : error C2143: syntax error : missing ',' be
fore ')'
accessible\qaccessiblecache.cpp(87) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(88) : error C2143: syntax error : missing ',' be
fore ')'
accessible\qaccessiblecache.cpp(92) : error C2143: syntax error : missing ',' be
fore ')'
accessible\qaccessiblecache.cpp(93) : error C2143: syntax error : missing ',' be
fore ')'
accessible\qaccessiblecache.cpp(95) : error C2653: 'QAccessible' : is not a clas
s or namespace name
accessible\qaccessiblecache.cpp(97) : error C2143: syntax error : missing ',' be
fore ')'
accessible\qaccessiblecache.cpp(98) : error C2143: syntax error : missing ';' be
fore '{'
accessible\qaccessiblecache.cpp(99) : error C2065: 'id' : undeclared identifier
accessible\qaccessiblecache.cpp(100) : error C2355: 'this' : can only be referen
ced inside non-static member functions
accessible\qaccessiblecache.cpp(100) : error C2143: syntax error : missing ',' b
efore ')'
accessible\qaccessiblecache.cpp(101) : error C2143: syntax error : missing ';' b
efore '}'
accessible\qaccessiblecache.cpp(102) : error C2065: 'iface' : undeclared identif
ier
accessible\qaccessiblecache.cpp(104) : error C2143: syntax error : missing ';' b
efore '}'
accessible\qaccessiblecache.cpp(107) : error C2143: syntax error : missing ';' b
efore '{'
accessible\qaccessiblecache.cpp(108) : error C2653: 'QAccessible' : is not a cla
ss or namespace name
accessible\qaccessiblecache.cpp(109) : error C2143: syntax error : missing ';' b
efore '{'
accessible\qaccessiblecache.cpp(110) : error C2143: syntax error : missing ',' b
efore ')'
accessible\qaccessiblecache.cpp(111) : error C2065: 'obj' : undeclared identifie
r
accessible\qaccessiblecache.cpp(112) : error C2143: syntax error : missing ';' b
efore '}'
accessible\qaccessiblecache.cpp(113) : error C2143: syntax error : missing ';' b
efore '}'
accessible\qaccessiblecache.cpp(115) : error C2653: 'QAccessible' : is not a cla
ss or namespace name
accessible\qaccessiblecache.cpp(115) : error C2065: 'obj' : undeclared identifie
r
accessible\qaccessiblecache.cpp(115) : error C2275: 'QObject' : illegal use of t
his type as an expression
accessible\qaccessiblecache.cpp(115) : error C2143: syntax error : missing ',' b
efore ')'
accessible\qaccessiblecache.cpp(116) : error C2143: syntax error : missing ';' b
efore '{'
accessible\qaccessiblecache.cpp(127) : error C2143: syntax error : missing ';' b
efore '}'
accessible\qaccessiblecache.cpp(130) : error C2143: syntax error : missing ';' b
efore '}'
accessible\qaccessiblecache.cpp(130) : fatal error C1004: unexpected end-of-file
 found
qaccessibleobject.cpp
qaccessibleplugin.cpp
qplatformaccessibility.cpp
qaccessiblebridge.cpp
Generating Code...
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\\ce\bin\x86_arm\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

我做错了什么?我不熟悉QT和WEC7,所以我希望您能指出正确的方向。

配置行需要-无可访问性,因为WinCE缺少通用的可访问性api。如果有更多错误,请稍后发布。

VS2008没有您可能需要的100%模板支持。我看到,对于非一致性编译器,该区域周围有一个
ifdef
。尝试在ifdef中添加以下内容,以便它尝试替代版本。