|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
, O+ r7 I+ v6 x0 Y+ G9 o* A/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'5 e7 G8 o5 X( d
, D2 w3 l5 W9 c这个头文件内容如下:
8 V' @* j/ `& L( Q( w8 F- X& P#ifndef QTCONCURRENT_RUNBASE_H; R9 _' f' k F# o# P. s2 @
#define QTCONCURRENT_RUNBASE_H9 H& Q H7 O# Q! a- }
1 \, W. d4 d7 m8 H5 g#include <QtCore/qglobal.h>5 P5 S) c# M- |! Q; S
* z4 H5 o- ?; z9 i#ifndef QT_NO_CONCURRENT$ p9 h- m- `' d
s+ Q8 u, ?8 y2 ~9 r# C#include <QtCore/qfuture.h>
8 ]% {1 N- C6 b6 _* K; a! N#include <QtCore/qrunnable.h>
) C5 U: }+ h) w! `- X/ {#include <QtCore/qthreadpool.h>
C8 A9 x, H+ Y" ^0 o- s+ q( |5 \0 }; c
QT_BEGIN_HEADER' o* l( l$ v3 L% L' X
QT_BEGIN_NAMESPACE8 }3 q p8 M0 }) e! a. y
' c- T" i; y( _# i/ H' R
QT_MODULE(Core)
7 X4 g5 ] W$ g) ~; L8 X; y9 n3 z4 m1 m0 E; x7 P
#ifndef qdoc# T& S0 p! Q \5 K- F9 x. P& U
7 P6 s0 G0 }9 }9 O1 onamespace QtConcurrent {! B. {6 e' x& T
/ q; i9 |" a8 \# j0 z5 L: {9 W P! h
template <typename T>
& k+ x" J5 C5 G6 fstruct SelectSpecialization4 b: S, m0 \ ^
{
& {% ^/ z- m& t! h2 g template <class Normal, class Void>+ z; C4 n4 H+ s/ a- N+ J5 T
struct Type { typedef Normal type; };( O$ J; Q/ S! A# A! O: r. A) h
};" @% h7 r) ?2 q/ {
7 \' _: ?4 q5 v' j4 Q0 wtemplate <>* w3 F P( Q( H( Q' W
struct SelectSpecialization<void>
- [) y1 u r _$ t{9 y( ]& w$ ^& v: s
template <class Normal, class Void>' W6 J* }+ A: K0 [: i
struct Type { typedef Void type; };
- m) G- D) {- {: p6 \2 m};* s+ v9 T( p2 r6 e; @+ u
9 {( @ Z9 U, f8 p1 v3 Ztemplate <typename T># y6 p! W9 @0 o0 R, a. e
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
9 ^- p0 Q$ n! ?0 R" R% @{: t# Q+ G/ O w+ J8 n
public:
/ J2 ?- S1 G# C9 ^+ {3 F# i J QFuture<T> start()7 h1 b: n9 L/ |4 \
{1 {; V1 Z$ X7 u C# F/ _! l j
this->setRunnable(this);
% B# O* B! U1 B/ L( p5 ~+ H this->reportStarted();9 p: i5 m, @* S$ B
QFuture<T> future = this->future();" J' B) t* r/ \) M2 U( ]4 N
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);1 d& {3 O1 y0 S# L* i n2 d
return future;$ @. I' ~8 a2 @2 m; D: t
}
+ o# h5 Q$ G4 `4 X V- b! `4 o9 I' o6 B3 b: P
void run() {}4 G. ~" j/ a0 @9 O" X- f
virtual void runFunctor() = 0;+ S) w' y4 U( a! i
};2 A- O: h. X' g8 A
) Z9 P( |4 m9 z5 j+ [1 E( O/ J+ H4 {template <typename T>
* o0 Z0 B0 ?% M* tclass RunFunctionTask : public RunFunctionTaskBase<T>
5 t$ E; E0 ?* n& t2 Y: v{" c- ^& o* Y/ p$ [1 v
public:
+ G% `5 m' S$ m7 u' \3 d void run()+ C( i+ N0 h) Z% ?* z0 Q
{
% B/ V2 D' s0 ^ if (this->isCanceled()) {
+ J4 w, N8 T6 ^5 h7 t. { this->reportFinished();
; W: h9 U- G. |* z. q. ~2 r" ]! p return;, u1 I5 U& D1 P! c! o
}
3 B% s. i* Z# \8 W$ j+ |# J. b: o this->runFunctor();
! @2 g7 u" Z1 z/ X this->reportResult(result);, s; n6 v# V* R
this->reportFinished();. }( F0 s3 O1 O- p& u1 z
}
; F+ o) ~ f" V W T result;
! _6 l! @( g( C" _& b};
4 k" {( B7 }( X! Z% L% f& K5 i
# |2 C- c2 z) F) t/ Itemplate <>" [' t0 g0 q$ Q
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 Y% A+ ~6 t: K( Q1 ?{! V2 o& N- H$ z, U1 B5 p
public:
) y1 q+ m5 A3 q' Y' D8 \5 l! [ void run()
* c# [ P- G: c. d; c {, Q! H' y3 L. ]3 W. n* b
if (this->isCanceled()) {
3 _- e, ~/ l% T7 j2 ~ this->reportFinished();
, I l5 D! M/ F' c! w H0 s( o return;/ I" U$ s$ _+ X6 ?& t
}) `, a. R/ Q4 u0 L2 l
this->runFunctor();
9 Q9 z' p$ q4 |& J: `+ o( Y/ [ this->reportFinished();
8 q2 e! ^4 ]" W$ B0 \8 R }* W; L8 r% _7 A: N; g# Y f5 \
};
* z7 j* i; k8 O; D( ?- P5 }8 Y$ w4 U" S
} //namespace QtConcurrent
) @, u9 Z$ j8 F" T/ \/ e/ V% O* E M7 p; {! `
#endif //qdoc) x9 o3 z$ D, M0 P/ g. v
( n4 O5 I) B' I3 e$ G0 e
QT_END_NAMESPACE
7 `: O' h& G3 wQT_END_HEADER
7 [( H/ ~+ c4 A$ s: _+ h N2 F( u. C8 R. w' _/ V
#endif // QT_NO_CONCURRENT! S& b0 c+ q* z" w
% M, B' C4 u6 e% m2 Z8 R: ?
#endif
; U1 h3 \; S2 @8 ^" a( x4 W& v& V$ N8 c8 [
|
|