|
|
我对syslink进行交叉编译到arm,但是出现如下错误:' _- U3 D$ ^( M0 a$ E
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter': Z. f, M# x4 N$ ~3 p& _, R
% h' W- B4 O' e! _
这个头文件内容如下:
9 i9 @6 @6 \5 g" N5 r' u" e#ifndef QTCONCURRENT_RUNBASE_H
" C7 ]4 d7 \5 a#define QTCONCURRENT_RUNBASE_H
3 ~! J. V* @: O
+ |: a( n" h2 y/ b) t" i#include <QtCore/qglobal.h>' Q( M# h0 [) n% g$ S
. `6 D F: z1 s, }2 g
#ifndef QT_NO_CONCURRENT9 |9 u. Y7 x7 o
6 \& R6 Z! v, D2 R- R: z! i
#include <QtCore/qfuture.h>
- u# M. c% ~5 k0 _#include <QtCore/qrunnable.h>
5 Z- p h. q& n& V) b7 p( E' `#include <QtCore/qthreadpool.h>
6 e; `3 d+ |' B$ }7 n# f3 r: o/ |
9 Q/ ~2 B! v4 `1 rQT_BEGIN_HEADER& D* P1 V8 K" a' X7 L, y2 p# O8 s
QT_BEGIN_NAMESPACE
. b V- q2 K$ c8 j7 T' w, ?& T5 h0 n) V3 r h" }- L
QT_MODULE(Core)
1 ?+ b) S+ i& E6 \0 Q) U9 V7 z! G) c( _7 K+ p7 x& x8 y. w6 n
#ifndef qdoc1 t, w) }* e! J+ N
9 C# z! ?& w% m c* X" i5 S4 Lnamespace QtConcurrent {5 G/ U' A6 b8 J q$ H$ S
3 Y1 ?9 @1 i& J* ~; Z) K( V; ytemplate <typename T> h# c5 y9 r3 v: U* H; |6 M7 v. K
struct SelectSpecialization$ D$ k4 F5 j1 @# I* {* Z
{4 ~9 {' Q, m/ c2 C8 u
template <class Normal, class Void>
% _3 P9 a! t( d: W( z2 { struct Type { typedef Normal type; };6 n' Z" h: N% f& {1 |
};
! }6 q. v4 l6 g" V9 h9 k4 T& Z+ y; c. H5 g0 o: J, \6 U
template <>
8 {6 w3 O1 X- z1 u& Istruct SelectSpecialization<void>5 S g3 I# d* ]/ V
{
l# w% V, U1 j4 L4 U8 o template <class Normal, class Void>1 j/ m4 J5 M( u* N
struct Type { typedef Void type; };; s8 e) S6 a) j1 h6 o% c
};
7 q9 H3 x) l3 Z0 S; \1 J4 K1 }1 X6 C2 R
template <typename T>
$ ^! {7 H1 d7 r5 K3 ~ W- s1 iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
( c# z2 [# g N- a k* b3 Q0 D{
, u4 p* V: ~* k( x6 t& Epublic:( u) {. s7 r1 p, T5 y* S0 I
QFuture<T> start()
- u* F3 Y: E; M9 R {2 u: ^% C, t" ]$ H
this->setRunnable(this);
; Q' h+ h2 J% \( _' ` this->reportStarted();
" E5 d, l" A/ D) p5 q& M4 D QFuture<T> future = this->future();
+ I5 z0 N/ L, i9 }* W3 Z- k+ e QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" L, |! D; I- @0 i) n return future;
0 a V7 h5 L+ \$ |8 \ z( w }
+ _3 p. b! m( F7 B8 ?5 l9 G# N" h" F/ c
void run() {}5 @$ b% }# B( x" I8 x
virtual void runFunctor() = 0;
* R# J- G8 `5 i e};* L! R! s' `% w$ K" z2 F9 t
* {4 R# p) ], B" E6 i
template <typename T>
1 Z! t2 ]) e8 kclass RunFunctionTask : public RunFunctionTaskBase<T>2 u6 }1 n: U9 ?) v3 a; q( O
{' B5 \ q* D% B+ D- W! C0 [" ?
public:. ?: J) i2 Q, R+ U2 g) u2 Z1 T
void run()" a" k) G% n6 ? u! W$ T
{& t) ?4 v; _) n
if (this->isCanceled()) {1 Y9 I: P; W6 W% C9 n4 j. `- l
this->reportFinished();7 z* h! g/ e( q# ^5 J1 v& ~
return;
% M4 x6 B- ~* s" D0 U8 |* a }# ~0 V; y5 p8 v& V
this->runFunctor();
. Y# t' z8 Z/ x) q this->reportResult(result);
, V# e+ D+ }: H5 l- w this->reportFinished();
, |6 c9 K6 h' ]: f5 [. p: ^2 x }
! _; B% U6 {/ W8 Q; x T result;
$ x5 r8 t5 C) J4 o s# X! s' p};' p5 u8 c( x. @( S4 [3 T
3 v- m- G7 h w' D5 t# _5 G( @
template <>% Q" i- \. I5 D6 B* ?' W
class RunFunctionTask<void> : public RunFunctionTaskBase<void>) v- z+ y4 t! o7 A
{
5 U, a* X0 c8 `- y0 |' ppublic:) S; [9 Y/ x4 o! g
void run()+ X* l+ G; |; w1 r' N; {9 m
{
6 z8 I+ Y* g j, }' l4 W if (this->isCanceled()) {1 Q r6 L6 S* x' g
this->reportFinished();1 q5 i9 L% [' C& T5 a0 A
return;
. F$ X0 j4 B1 b! ?3 B5 r }; Z+ |6 Z$ V: K8 C0 t
this->runFunctor();
/ J! O3 [/ m; k! v/ ~( ~4 v this->reportFinished();3 g+ P5 Y2 g8 K& l
}9 a: v' r5 N, x
};
: M8 z/ _2 L! Y1 d! i5 y8 H
, F- x, W! y4 c3 e3 [: M: M3 r) b} //namespace QtConcurrent
8 d w7 T. D+ a8 h( S9 \% `2 n" H! c6 q# { M8 |$ F
#endif //qdoc+ `- V3 ]' K2 j3 p" j9 Z, P
2 [* Q4 D ?# V+ {# iQT_END_NAMESPACE
% I; F# b3 m! X/ C1 B+ B: FQT_END_HEADER, T) w# ~% Z( g1 E
; ]8 o- m, l$ b* P) Y7 `( O% L#endif // QT_NO_CONCURRENT! U# X+ ]/ B; S+ S) G
5 ?+ u% Y; V X4 y- M#endif; A4 R# t* W$ ]
" ?/ D/ h$ Q+ \4 |
|
|