|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% V+ w3 s4 u: `3 N1 |
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'6 L. j- c8 m' w1 i( L, ]7 E
T; S9 E3 U q# o+ ]( V# Q3 W* C
这个头文件内容如下:: r8 i2 i, V7 g# T+ ]! n2 {$ t
#ifndef QTCONCURRENT_RUNBASE_H
- |, a, O7 p Z) W: b#define QTCONCURRENT_RUNBASE_H
" w; } m5 ]& \( F. A& D$ h
, g- t! g y8 |/ w1 w% }#include <QtCore/qglobal.h>( ^/ }* B7 E. ?" n: B
0 \% G6 P/ Q l* \" v, s) P6 X0 G
#ifndef QT_NO_CONCURRENT
7 ]: {; X" m$ d$ j( e% ]
% @3 K! {0 R3 T7 S, B# f/ d#include <QtCore/qfuture.h>! Z6 z, x1 C/ I/ o8 |
#include <QtCore/qrunnable.h>% V$ K7 d* r# A7 n
#include <QtCore/qthreadpool.h>
, Q8 _; E) k7 y- ?& ]9 h9 O) E, H5 k+ R3 _; _0 _
QT_BEGIN_HEADER W3 r4 [7 q5 A6 X" B+ i
QT_BEGIN_NAMESPACE. b( t4 a& R! g, n; ~
) X" d. c% c8 X2 R* X5 qQT_MODULE(Core)
, L, L2 @5 v6 H# ]' m3 F( U
) |; Y- m/ L, s2 l" z: Q( r#ifndef qdoc
& X: `# m# d( I$ o0 a+ p2 k
* i6 h. R, B9 Gnamespace QtConcurrent {6 i$ U! P' y% n3 N& P
4 n% i5 w3 d2 w) `5 a: \
template <typename T>
$ h1 j" A- d( ^, astruct SelectSpecialization# U( A1 a7 V6 f* l$ n
{0 _7 n" O$ h( Z/ K! H, E' Z
template <class Normal, class Void>6 Q2 R1 g a* h1 m* b% N# j
struct Type { typedef Normal type; };
* ?. j4 w1 o/ }};
4 R$ a) W O- R: M! r
! o k3 l5 M2 I. H% v/ p$ c0 O- Btemplate <>
! S2 g/ M* }+ P4 K9 k8 jstruct SelectSpecialization<void> ^' T" h' k ]0 T
{5 z9 s/ N- p# z) U* L7 @; N7 _7 l
template <class Normal, class Void>% a6 U. o$ G7 s' f
struct Type { typedef Void type; };
) ~1 F1 ?; u* a2 D0 y};0 v4 e+ q! ]0 C2 ~1 ^
+ I# ^3 h6 D* a: Y
template <typename T>
. Z( l/ j! `: ` p3 U. C2 a2 vclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% I/ L4 L* v! k1 l{8 i m U; P. U
public:4 _ n3 B7 G( F
QFuture<T> start(): S6 t Q' a2 ~ ]3 m
{
! f8 ~$ [4 T h this->setRunnable(this);
/ `! p5 W' l" X4 N1 ?' f this->reportStarted();) H& J$ d2 M7 ~+ ]( l1 v& _
QFuture<T> future = this->future();
" y# D% a; v: m2 e QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 t# ?+ |0 k% b, m- j return future;
j2 t8 Q4 ]2 `8 b: J }
+ R, t7 p5 c$ j( v: H: h" l- Y9 A% \/ J9 h
void run() {}
+ T# `2 [6 `( a& j virtual void runFunctor() = 0;0 I8 {% |: S; R1 E$ D
};
3 K& N0 Q6 z- g( J- h1 F6 ^* L; n
6 [/ S5 Y3 f7 _) H jtemplate <typename T>: n/ g! ?9 E( q/ ?& `/ k- k8 t* A
class RunFunctionTask : public RunFunctionTaskBase<T>
9 d# J V1 n- A% U{
! W( N" j* w# O+ n4 Gpublic: w! ~0 D8 [: n& W# O
void run()
4 P$ n2 I4 c$ I$ \ {$ u u8 }+ b! c6 c! z" @- f) Q: y
if (this->isCanceled()) {3 i; d2 g- q1 B$ V h
this->reportFinished();
& s' \1 ^( v* ]6 S" a/ g5 {5 |+ M return;! y& w6 T y9 T1 n3 a/ n
}
+ ~7 J1 a" k1 D this->runFunctor();( q& F5 M) p( s/ Q. @) X3 |: d, h
this->reportResult(result);" Y- q# w7 y g$ }4 z2 D; O' d& k
this->reportFinished();( |- E+ C& N# a, c j9 ~% B
}9 Q6 }6 s# k8 J. Q, b7 p( m
T result;
. q1 j# x/ w1 @0 i" f1 l};
( v, d8 Z2 B4 f" |. t1 b9 l: K w" [5 Y+ q/ h5 Z2 j9 _+ o2 d A/ K
template <>
2 m: M5 d9 a* v& O6 vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
* V+ b8 Z; ?& p3 \( f) X8 h/ @{' v0 I7 g; H3 G
public:$ \8 r: e }! N* b7 g
void run()
2 |# \4 i9 `, q& K$ I% `5 [. a6 m { H4 {- r# G6 n5 o3 i9 }4 n
if (this->isCanceled()) {
: N# y: u9 J* e* W' f. l9 m% h/ P this->reportFinished();1 E4 |) j1 r3 G- M4 f7 m
return;, U2 _3 c. @1 F% e' D, Y0 N
}
9 t: F5 q' m+ ]/ E this->runFunctor();
+ [/ C7 L6 S# O1 L/ l# t this->reportFinished();* P7 n- V% r# X5 @. e/ h
}- D+ ]# P6 \5 o7 Q5 c
};
, o" u( g& v' s& h% a, m# j
, [! E# o. m! o% X} //namespace QtConcurrent9 n* h. H h5 W" x+ s5 D
0 T1 [4 C9 X% X1 {7 L4 x5 @, u#endif //qdoc- ^! ?- y1 F) I5 W5 @0 y
6 I+ Z3 o/ Q. gQT_END_NAMESPACE% o8 A/ ~7 R+ |
QT_END_HEADER* m0 A/ l7 W; x* E- Z2 r
9 Z+ j' l% y& s" c$ W5 b#endif // QT_NO_CONCURRENT# p& v( ]$ Y) h' |) c+ t
: Z* {/ [8 H+ I7 n- A
#endif+ {3 `/ x8 U8 O+ e6 T
; {8 O6 V5 h3 n! }5 F" J c |
|