|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
& j d; q1 ~1 t7 N w/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- ?) Q, v, y/ G3 l7 N6 h( o2 }
. R2 C3 X7 [5 `% D/ J5 { m这个头文件内容如下:
; j4 E* y9 @3 r5 [/ m2 F#ifndef QTCONCURRENT_RUNBASE_H! j S3 j- u" W/ L
#define QTCONCURRENT_RUNBASE_H7 v7 S7 ~. ` K; q
* k4 e( f4 }* p; I#include <QtCore/qglobal.h>+ J2 Q4 I( N# W V# Z' T4 b
2 x: v" R0 D: X* o' x& f#ifndef QT_NO_CONCURRENT
; d, m8 ]- A# n1 L, J) }7 A* z: N1 @. o# d
#include <QtCore/qfuture.h>* }& [, `" Z9 F: t( T
#include <QtCore/qrunnable.h>$ J7 D! J7 F& P x2 `7 O8 _
#include <QtCore/qthreadpool.h>9 {# X: G; C$ z/ ^; w
/ ^& t/ g1 L2 \! ^9 n( l6 X4 g3 v4 I
QT_BEGIN_HEADER! _1 Z( K/ \7 W6 x" t: V9 Z4 z
QT_BEGIN_NAMESPACE
7 O0 l2 l: L6 m" R6 O: M$ t \" O: b
QT_MODULE(Core)5 `% ]/ }, ~! r. C0 I, J2 N4 B" h
* T. Q, w% D5 H( }8 ]6 e z6 X#ifndef qdoc w# Q: i9 P+ c
4 D+ B" \. R8 C$ z% f$ D
namespace QtConcurrent {: C5 W& x: V0 J
7 d; Y+ w0 q: o2 f# x* R( Vtemplate <typename T>
3 K! f- b/ C, q& v6 Mstruct SelectSpecialization
0 B* b ]' a& ]# U{- i# P% `( r# W. I( h0 ~# w
template <class Normal, class Void>$ z! O/ E- n8 r) f
struct Type { typedef Normal type; };+ ]/ R: b7 S& f2 @
};6 r: o$ L) {4 u+ E+ L, {
B8 U/ O7 H6 V! x0 L& E/ ~
template <>& A3 W& J7 i6 c' Y' d$ n8 }7 c
struct SelectSpecialization<void>: Q# C1 d9 B; s& W/ q/ C( {8 L
{- Z6 f8 ~3 N0 v. m% M3 K+ Q5 J$ A
template <class Normal, class Void>2 T" ~" p4 x. h4 H3 H* q8 \
struct Type { typedef Void type; };2 E. e& u+ ^4 G+ b9 G
};0 c1 O# ?( t0 b% R( T6 Z
, m+ s8 T+ d+ @( S6 }$ O* u: `
template <typename T>
$ p4 t- m% f4 N" C" b: A' F; Zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
0 V3 g6 N6 I7 n/ t- f{
0 h8 F1 Y# i: o5 [public:
+ _; y$ M+ L' s1 P QFuture<T> start()
0 d; p* R$ v4 F: [- c# o9 g* c/ g: l {
. I1 E' f! F( C3 Y this->setRunnable(this);
8 x$ ^, E# z N this->reportStarted();
; V7 s* ^9 U3 i; a. a K! T. T7 q QFuture<T> future = this->future();
0 W& G# X; X- S% @* K' ` QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);5 v, B4 I% E+ C( d7 ?
return future;2 {+ o1 O2 ?4 J3 ~
}
# u. H# \ ?( E. j$ W& r. v5 f# J) t1 Y7 d. L, d( ]
void run() {}/ x5 I" i9 h0 o K, N1 w7 c9 O5 s
virtual void runFunctor() = 0;+ @0 ^3 c' ^4 u
};7 }0 `2 ~6 v5 p
) n$ ?6 d$ L' d1 Y0 ^' G
template <typename T>
6 p7 ~8 r0 z1 I4 g# E9 A9 Q& Sclass RunFunctionTask : public RunFunctionTaskBase<T>; g0 u7 H8 r) o' f) P
{
b G- V8 E6 J5 wpublic:% Q5 }' j5 n: s$ \ o/ M& q7 k
void run()
0 |# p* Q( Q) |+ T; k2 e {2 {6 |, o$ V) B" m( Y- U7 g4 n
if (this->isCanceled()) {2 D! k9 Q3 U, q5 t
this->reportFinished();7 T5 k. B, s9 p$ B8 p& a& N/ x* b
return;
$ q' U6 Z- G0 w }1 y+ v2 }' g+ T$ G9 `
this->runFunctor();
! a$ |" X8 ^$ T, `6 l2 j. S this->reportResult(result);* p4 d+ W1 K5 F8 F! p- l. X$ r. {
this->reportFinished();7 _3 W( f! D. Z. s' g* N! ]
}
6 O3 R9 y& o5 A; U; | T result;
- K! t6 p! _ d7 h |4 ]};" i$ E+ f3 s& L0 ~1 t
, |: s9 `. u/ m+ ~template <>+ x' @5 k8 {. O& \+ l0 ]
class RunFunctionTask<void> : public RunFunctionTaskBase<void>4 A2 E9 V8 V- [% z5 n6 P8 Z# d
{; S- M7 y3 t7 E: @$ E5 H5 V
public:! q- v C9 f. h% k8 u q
void run()
* K1 M. x- n/ H$ g& V7 l4 y {
0 X0 G" {) E0 N- D! q if (this->isCanceled()) {. f- |& r+ b" K
this->reportFinished(); w. r2 }8 v" ~4 B# I4 v
return;- }& ]( p1 A5 g
}" j" O( l" ~, j$ a ~
this->runFunctor();1 X" c: L" p; ~
this->reportFinished();4 E" \2 v0 M9 l1 j+ ~& y% P: V
}
1 `$ r j! X! U; ~$ |$ \};
! {/ ?3 V6 v( ~7 P9 |4 A- @+ t6 B4 p( V/ \* \3 C- }" y
} //namespace QtConcurrent2 C1 @, S( e! b# k
! T* p! l: w, D9 i#endif //qdoc
+ Y3 i% a0 S- k
( o2 ?; H; L1 |5 IQT_END_NAMESPACE* _: `- i( M7 {/ J l
QT_END_HEADER$ E# N; O* s, j7 X7 [5 L
; C8 w0 e m) p$ Y#endif // QT_NO_CONCURRENT+ A, B) Z3 ~) n7 g3 L/ P \
, x# c" H/ Y% `* F% ~
#endif9 v" |# Y; {7 P. B7 R- |
, l% s% @4 d( Y1 L% n |
|