|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ ?) N; m) y( t3 o# x6 ?# J' `# I
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
+ T8 L" n3 z1 m' c3 B6 Q2 ^/ k+ c
这个头文件内容如下:
2 d2 V3 d p7 W0 ?#ifndef QTCONCURRENT_RUNBASE_H5 k0 _, E; Z( j* S2 { L
#define QTCONCURRENT_RUNBASE_H8 U( Y1 {1 e! {% k
! P3 ?, o% C8 \4 d% {9 J
#include <QtCore/qglobal.h>4 O8 K, q% |& r
" }3 W' y$ B3 X$ p, h/ d% z#ifndef QT_NO_CONCURRENT5 v$ o' u% t4 s) ~+ M. c/ a) a& N
: s6 ?! L- x9 C5 S Y#include <QtCore/qfuture.h>; y( k/ H1 O' o& c+ J/ i
#include <QtCore/qrunnable.h>2 e8 I0 p4 v7 |: r: A U, K
#include <QtCore/qthreadpool.h>, a, u2 z8 d5 I2 U( w
7 R2 x# K# [* I3 ?5 s* F
QT_BEGIN_HEADER" L5 a- F/ h2 _1 C. X0 P+ I
QT_BEGIN_NAMESPACE& R/ I& o- g1 |# P# s, |
$ T, _/ a# _9 ]% R1 EQT_MODULE(Core)
7 L0 R J2 Y: k6 Y
6 M2 P: ^! g2 e- H#ifndef qdoc
; v' A& s6 R1 B, R/ V, j4 K. e
+ u$ H. Z. d, S% X |1 Lnamespace QtConcurrent {
. Q, h- y3 N1 {9 r
& Z! h5 j( P6 H, L- Ptemplate <typename T>9 |4 U+ ~! k0 z$ @
struct SelectSpecialization
6 ^. Z( Q3 e2 N. I9 {& `; q+ E{) ~) I4 @: r7 i1 v" P Q( S% |& z
template <class Normal, class Void> F9 C- ~/ p# C, E5 q& R) N( x
struct Type { typedef Normal type; };/ I; R" K6 s0 _. T3 w$ j8 s, r4 B& h' o
};
$ h* b5 S( b% T; D" R" N2 [$ h- J" a. b6 h
template <>
' d( F) ?0 | N q3 xstruct SelectSpecialization<void>6 Q# ~* o* {- }
{0 O3 H. U% V7 W3 d; S8 O
template <class Normal, class Void>
" u. I2 \' y& G: P5 t+ B5 x( a struct Type { typedef Void type; };
' ]- @ o6 |/ y6 W/ p};6 c6 x e4 c a( h" `3 i. }
$ q$ V8 a2 ^6 W% ttemplate <typename T>6 f) y5 K. |% x
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 M+ v: n8 z" b! i5 B{
" f9 j5 m8 d& y, t' zpublic:* p: N7 |8 b- e* D5 g7 H7 Z' [
QFuture<T> start()
3 X! N( |: M1 p v8 u! Q* ]2 k {: E' e% ^6 q) ]
this->setRunnable(this);
8 F0 @- ~0 e+ k3 J: { this->reportStarted();: Q! S9 P& ~ \9 Q, S; y
QFuture<T> future = this->future();
% C' E* K+ A7 S* B9 P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
9 k3 D4 E3 }) x$ [ return future;
$ ]8 _* t* ]3 n @7 o }
+ _8 w, M5 |8 E4 C4 p* `$ n8 W$ Q5 K8 f f1 E$ U7 u/ k* x
void run() {}
( O: n3 X2 L. k2 O! ~ virtual void runFunctor() = 0;+ [) p1 q% o6 h) X( U8 F. @
};
3 b7 F+ L# x/ ?% n4 Q0 A
+ p+ ]# D e3 gtemplate <typename T>
, s- ]0 v" @( u! k- u, j. x" N- \class RunFunctionTask : public RunFunctionTaskBase<T># Q1 K9 M- K- o
{
" V/ H( }: r' ]public:
& N; v& P6 u( o" T: @7 X void run()0 G- N) }3 k5 ^) d* w6 m2 ^
{7 }5 q+ g; e7 C( z1 ^3 f; F Y
if (this->isCanceled()) {! g2 `# G6 E' |% x& \
this->reportFinished();) C5 f$ u2 h% R% b
return;5 \0 \* I% N: V& p) g# K5 L. ?
}/ M# B1 f3 b9 a
this->runFunctor();" b" A' S% Z4 ]
this->reportResult(result);
& I& d* x6 |7 I8 A& } this->reportFinished();
5 G& _8 C @5 q# r } H ]& N3 m7 h U: l+ Q V0 Y
T result;; y+ I8 q5 b' W2 t6 H) I- M" D
};+ f: _0 k2 F# F, ]
! \4 n0 I3 B2 c3 D7 A' F3 Dtemplate <>
: w/ ?+ G: G& R4 N% q k- G5 Mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ ^# |) v! W; L{
. z$ ^, |9 S# W3 o; s7 Zpublic:; |& A8 \8 |+ v$ M( ]9 i! t k
void run()
& e2 J' r7 O b$ v) d8 h" n: W# } {3 b3 s9 Y1 _! N8 M
if (this->isCanceled()) {4 {! D$ o$ U( C! X' r
this->reportFinished(); ?; t. o1 Q' |; |
return;3 g% T3 z7 |! f7 H9 M$ u/ X
}( c) l k5 W0 u' V
this->runFunctor();
# S: O0 C. ^8 d8 S- C this->reportFinished();2 S' ~- y; s5 t; e4 d. m
}
4 \4 h* Y E& T% [1 o1 ~1 @};
# } D! `0 O" X- z
5 Q7 G3 }7 `' G* M5 G3 ~} //namespace QtConcurrent/ m% u3 \0 u6 W" k9 a
& I- @( q; Q9 y" f9 k# u
#endif //qdoc3 S6 F o2 u3 n5 }6 L: ?% x u
/ ?0 g! x! O# \. W: k! eQT_END_NAMESPACE' x0 m0 ]& s3 j% b/ x/ F- R
QT_END_HEADER, A0 t! q, |( i' r! @ \; g5 e
3 O7 D8 Z! V3 W3 `+ J' P
#endif // QT_NO_CONCURRENT
/ d6 K- H1 w* z9 d9 `5 I" x& D7 [$ p' S/ X- a) c% k
#endif
, n2 v: a, S& ~1 p! O) V
8 X+ g. E" t* b |
|