|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
, s- g8 e: E) J; C% I' p; P: F" Q7 o2 p/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 ]& T4 `1 Y; J# ]3 O4 g7 i0 I0 ~2 A I, C- h" z. G! G! o
这个头文件内容如下:3 t) R- K6 ~7 G
#ifndef QTCONCURRENT_RUNBASE_H
: W r7 Y! R' j# S! T" y* e#define QTCONCURRENT_RUNBASE_H5 w( y& I/ N. `% U* N/ I" e
& E0 l* E& E4 M) }#include <QtCore/qglobal.h>
0 }4 x9 v! [1 F0 ~4 I9 _5 q3 N. K N% H# W
#ifndef QT_NO_CONCURRENT3 [% v- L) v1 s. N \2 Z T
, w- ~4 @+ |: T" {. E' O6 r- R! H#include <QtCore/qfuture.h>6 c+ P, p7 Z2 q
#include <QtCore/qrunnable.h>1 _8 a; z( c0 x8 p: k! S
#include <QtCore/qthreadpool.h>
) c3 v% b% F* V% G: N$ F6 S u
, z+ k4 c I% }QT_BEGIN_HEADER
2 N3 O9 K6 M ~/ r" z+ w* r6 G2 ?QT_BEGIN_NAMESPACE
. n3 C1 w P! [6 D
9 Z8 |' I: Y" H3 H! U' {QT_MODULE(Core)8 P! p9 ^6 {; Y4 `% E
! k# {: H% l! }6 g7 ^#ifndef qdoc
* D i* I8 t+ i8 K- }
. ~% i* ~6 i6 M+ Q0 h8 Wnamespace QtConcurrent {+ g: Z" T5 w( _; R1 M' a7 J
' i0 N+ ~. S$ `$ d# T$ C4 ^template <typename T>
: m$ U( F: Y& e; C: b+ @struct SelectSpecialization
! M7 Y+ M$ b- e$ j+ o4 n{3 z! o1 Z# I2 j9 Y# ?8 J. o
template <class Normal, class Void>
7 d: ?" t4 U5 ~; x* T9 V, ^& { struct Type { typedef Normal type; };
( @# S/ b6 P* h c, |. f};6 a5 ~6 B4 s2 e" ~
) N9 R. |/ B9 y# x
template <>
: y5 d+ m# D0 qstruct SelectSpecialization<void>
- ?4 ]! `- `/ N/ ^- q. h{
7 x) `* x: k3 K+ |) X0 m& u template <class Normal, class Void>8 s& c4 O4 R0 j/ ~8 ?) Y& t
struct Type { typedef Void type; };% O6 O8 y) F/ \. w
};. }6 {* N0 J; N) L
, L" k0 a/ f7 s
template <typename T>* u$ l9 t0 `) N9 m/ }
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
( \: P" M& q! H/ ~( |# h6 T{
( w$ E; V' b" epublic:! V( f) s2 C$ B4 x% O# f
QFuture<T> start()
( N4 G, L/ S) f0 q! | {
$ ^5 f6 @- ~2 D7 _; ^! ^ this->setRunnable(this); P0 x5 u' f, b/ k: C9 R2 a/ x
this->reportStarted();8 ^4 x) J O' x+ o
QFuture<T> future = this->future();" D3 ~4 u, E& y" m N. W
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);* q0 ]2 G& ~5 _: ?& ]7 h* Y7 u8 Y
return future;
; `; G7 ~9 S+ U8 `1 E: i }7 { V7 `3 I3 e; ^( }, X
' H! p8 G" N( _8 ] r/ a6 G
void run() {}
' U1 Y5 W" f+ \4 [) U0 d virtual void runFunctor() = 0;
* U' z/ J k* L};( Q6 s. q, E$ l* l- H
( ^% [* b" g" ]) O% v h* ?% {template <typename T>9 Z$ s7 p: B0 l' |. G
class RunFunctionTask : public RunFunctionTaskBase<T>. ?' \6 F! [6 q" L& d
{
0 u# e/ z5 {% P2 o9 O7 xpublic:& O0 t% S% l9 H5 u2 T# n, }- h9 X% w
void run()( }2 s' [$ Y1 e' C$ v2 G* {
{
# W, G4 r2 ~. [, ?$ I if (this->isCanceled()) {3 Y* `1 D3 o( D5 i$ O1 |
this->reportFinished();
/ U' {' U3 s x+ J return;" Y4 V( W! \& R& z9 ]+ S
}% M# o* J" ]# l- w. w
this->runFunctor();
+ @! S; i+ I4 G9 g' Y2 G5 P C this->reportResult(result);4 H/ Z: L Z$ H2 _3 Z, \( d
this->reportFinished();
8 D# c8 D* |' a" W% P% B' A5 I }
9 H, T9 b+ m4 Z' x5 ? T result;! Q# H$ j8 `3 J& E, n
};# l8 p0 H* R Z* V3 z; q5 ?
" Y# I* T i$ |) Jtemplate <># n% e8 N7 B4 j2 u0 G: |
class RunFunctionTask<void> : public RunFunctionTaskBase<void>4 U- A- n9 b9 C4 G0 H
{. D$ Z0 L7 X! Z! o& J f
public:
$ j4 D! S7 N P, d/ y void run()1 P0 }: n- v: a9 [
{
: E/ s% C, Z' [6 d3 p! f8 F if (this->isCanceled()) {3 g. ?) L+ A3 ^5 U
this->reportFinished();) D1 V5 Y' h% p+ |! }4 Q
return;
5 N7 `/ Y: M" u+ Y; _" C2 Y }
0 k3 m# [# m* f1 W: Y. Y% O6 U \! \ this->runFunctor();
# ~" u8 F$ l' D8 w) [ this->reportFinished();" \1 k! { i; y. Z% Y
}& l" E3 T4 _5 r7 G9 r# |
};- r0 C) `& G }6 U$ l, n
! w3 g0 ~" a/ q2 R1 o/ ^5 ]
} //namespace QtConcurrent
; r6 {' U4 W/ G) S% Y& k: Y" U7 E4 J, h+ D
#endif //qdoc
$ x: ^5 `6 d' F9 h8 i9 o: ]- W! Q# O- j
QT_END_NAMESPACE
9 F# J0 K4 o/ d) y* t$ w8 MQT_END_HEADER
# s; D4 W3 S3 u- X2 h: |" d' l6 i6 h8 m% a
#endif // QT_NO_CONCURRENT3 ~' X% ~' u$ [- L
0 v! C+ w8 C' E1 T
#endif8 j! ?! M/ a$ t1 n1 y, t8 d( c* Q
2 D: s- { o5 C# J7 S9 `3 l* b |
|