|
|
我对syslink进行交叉编译到arm,但是出现如下错误:6 M6 d/ K+ n7 f) ]4 c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter') w" ?# E, f! b% a1 e$ K
, {5 Z2 c2 T, |1 R. ]( l6 B! I- A这个头文件内容如下:$ e; r+ d4 [+ ]2 m! P+ @2 Z
#ifndef QTCONCURRENT_RUNBASE_H' w8 e) l ^) F& f' o+ q
#define QTCONCURRENT_RUNBASE_H2 L# \ `+ i1 \ W7 \+ u
8 k+ |* f" i+ f$ W+ S
#include <QtCore/qglobal.h>7 _' }) ?! X, a* K5 ?4 v- g; D
/ B- ~% @5 \0 d, o#ifndef QT_NO_CONCURRENT$ d" V) n) \; O6 e1 r+ k
0 E5 Q @: L* j#include <QtCore/qfuture.h>
) B p5 N% ~% ]' H#include <QtCore/qrunnable.h>3 K7 x. d/ v- C9 X7 `; a* C
#include <QtCore/qthreadpool.h>
' R I9 T1 c/ h+ X% O- l2 M* X
! `1 k# O& i. RQT_BEGIN_HEADER6 _6 m+ `6 D# H1 e8 @) c k6 Z
QT_BEGIN_NAMESPACE
6 \+ D3 y' p- o- v
9 a+ O# I8 \$ U# wQT_MODULE(Core)* @% s/ g+ L- t/ h, Z
, E" v2 C2 }6 g+ ]3 E
#ifndef qdoc6 W; F% i* q- Z0 e1 |1 X7 q
/ r) z9 ?0 |- s- ?- znamespace QtConcurrent {2 a( K8 O; c$ G/ y3 ~
3 Q" x: X5 X* j
template <typename T>* ?) P! t1 ]" Q+ u$ _
struct SelectSpecialization7 V& \ }8 S5 d
{
( O* U9 ^* l) v# W$ _& o template <class Normal, class Void>/ v- @8 B" ^# ~. ]
struct Type { typedef Normal type; };
/ M" y3 t5 C ^$ W; m* n};
& N& }: x! n5 c( N* P ^: z0 g" g: W H4 T
template <>" z* l$ v. H" X
struct SelectSpecialization<void>
& [, }- t. R5 `# H6 m9 e, c{
2 l: x, w. [% Y- g0 _' l. | template <class Normal, class Void>' G5 m5 N" w2 I9 g5 c+ U$ }
struct Type { typedef Void type; };
; `/ K( N: Q( q) N4 n) U};
. F, ?3 h3 o$ u: X6 \$ \( V+ G% }) _, o! r3 E7 p
template <typename T>
' d/ W* T% x, T- ~- f3 @class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
9 d+ ?/ ~5 ~, h( x{& y+ p- R, |& R; @
public:
/ l$ C t9 A9 w QFuture<T> start()
0 C+ K( a9 y( M4 X {
% B9 W; q x$ B# z( Y& b" e this->setRunnable(this);
$ H& y% _$ @* Q/ [+ L. ? this->reportStarted();
+ G/ H O: q0 R QFuture<T> future = this->future();# r; x& e: o# D" z( a! o$ ?
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
) O+ Q5 k& H1 ]! e/ V return future;, v1 C5 Z+ b I0 [5 ]
}
+ v3 o$ l& G* \6 y$ y2 H! f" v. m7 s, O
void run() {}
9 f. `/ x! S# N1 L8 s- I virtual void runFunctor() = 0;/ B5 k6 ?4 l: \' _
};! B9 l: P$ \! c3 S. }. R, ^
( b; Y9 Z; i8 V$ y/ f! [
template <typename T>
+ ]# d1 U: K# K7 W& Eclass RunFunctionTask : public RunFunctionTaskBase<T>
8 G0 L: Y8 b# K/ ^{( L0 g7 B1 I" H, |4 }2 s* o# f
public:
# J, o d+ X6 s" Z) N j% m void run()" A$ s! \! g+ T% O
{
% v0 z( }+ {% U& a6 ^# p if (this->isCanceled()) {
1 }6 i2 P0 H3 m( \2 F% v/ ? this->reportFinished();
& z& d% p! A. y return;& u! S1 u) ]% Q
}4 Z/ H, `8 G& J: |# _
this->runFunctor();
% e6 v h# r, M5 r0 h0 d: G this->reportResult(result);: h! j4 A5 v, ~, n: G9 H% R
this->reportFinished();+ t6 Y! C/ n; O9 S/ v7 z4 E% i
}/ }+ F" @: j5 Y' S# t) l6 Y
T result;
5 W6 A3 ^( Z7 |8 ^$ T( f" J, g};+ z& ]( ~" Z( \% m+ W; d2 n
1 E# ?5 q9 W6 i: x1 O& a+ V
template <>% k ~% P2 |* C+ w, c. H
class RunFunctionTask<void> : public RunFunctionTaskBase<void>$ F3 g$ V Z" B, x4 V% h
{
% V( u% f6 s- g8 zpublic:7 K# S7 R) P/ ?* I" v
void run()
0 M& o1 e) u% [5 T' e: p' @ {
k2 o9 x7 f# B& }$ V9 C; `+ [) o if (this->isCanceled()) {
( }9 c& n5 U/ h% `6 c6 x+ }7 ] this->reportFinished();
0 q2 v* M8 P. Z# Z* o$ e$ i* @ return;1 \4 g9 e# ~/ N x/ Q8 G. U; {/ u" I+ H
}) J" Z' K J. Z$ \5 b: l- L
this->runFunctor();4 W9 Z c4 @' R& s$ j+ R
this->reportFinished();
0 w* b# V, d4 F6 e: C } e% \1 x6 B' u3 D+ t
};
; d4 J; }4 M' Q' C* s9 o
7 l+ o) h/ ?- R8 o} //namespace QtConcurrent
7 e# ~0 ]# W( \/ q/ t) m2 \- ?7 E/ y; M
#endif //qdoc+ P F+ Q! O) l$ ?
: q6 `5 v) V1 O6 q; w/ k( S5 L; mQT_END_NAMESPACE
4 Z8 J' A; S& _) M6 ~QT_END_HEADER0 W0 t0 v6 L& a& n R6 L4 i
4 D/ I8 u; z3 i- ^1 B- Y( o
#endif // QT_NO_CONCURRENT
4 m: p* {% z) j0 ?* }! Y9 k; p- ~" `+ t% I6 @( [3 M
#endif
, j. d7 M/ f7 a2 u
8 v0 H& r: Z: M( e |
|