|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! A& S B, { l: w& a6 b
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& z8 v- i9 f) P6 j) U5 }/ v
: A5 m1 M" q( Z. t这个头文件内容如下:- ?; o0 C+ \+ ^/ D& s
#ifndef QTCONCURRENT_RUNBASE_H
/ _/ M: l; v6 H; A#define QTCONCURRENT_RUNBASE_H* ~: n3 J* N" z. E, @7 O; [! I/ \
6 [; a( S1 b8 T
#include <QtCore/qglobal.h>
. E o* S) f, h* o2 G
* E3 I& a% p- t# X4 F#ifndef QT_NO_CONCURRENT% A8 ?2 S! A1 }7 y }
$ Y+ _+ ~" d6 `2 q#include <QtCore/qfuture.h>
* t; [( u; A8 t6 a: P6 j. a#include <QtCore/qrunnable.h>
. _' n, s' J% r) C0 T#include <QtCore/qthreadpool.h>; _8 u: V7 ^, W. W- e! |6 a! F7 B
4 o# t. A0 {2 J1 U
QT_BEGIN_HEADER
' A- y1 v; P" X1 i( m% u9 l/ C; J9 iQT_BEGIN_NAMESPACE0 H8 y, b: |, j5 I: d( ?
- d) e, E# V; e
QT_MODULE(Core)6 Z i5 n* l/ b" T, U L
& p3 R( @; B* c* X& r, _#ifndef qdoc
2 D0 v0 P! e4 o4 T
) p0 N7 e6 Q9 s h( h6 F, o1 } Jnamespace QtConcurrent {4 {8 D# i" C! B' t4 ^4 t3 j
3 ~! o" r+ @' i9 l4 `# v( g
template <typename T>2 L$ L2 Y6 s( {9 R6 Y2 z5 [
struct SelectSpecialization0 p0 F8 E1 b8 u0 [0 e7 U
{6 s' j. `0 K: b. g7 ^+ y
template <class Normal, class Void>9 y: e* }. p+ @! \- L! {* P% w
struct Type { typedef Normal type; };
y+ Z6 f4 }& S4 c0 l( G) ~};
5 F0 B) Y; d& M' k# @" z6 @0 X" e6 W1 q6 G4 Z
template <>
3 h+ S% z8 b2 V( Qstruct SelectSpecialization<void>' p! r9 k+ ?# |; D
{& s5 t/ ?3 U8 m% V
template <class Normal, class Void>
& M/ y( K, c0 W) U struct Type { typedef Void type; };
2 v8 S! b/ V! o0 N};& b$ O2 k- P# _
1 ^4 c5 V% k" Y. stemplate <typename T>
7 F1 e" j$ I$ g, Aclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% H9 f% F- ~ `( S0 |{6 X, X$ ?- ^0 I& p
public: ?0 _! e# M5 @$ x
QFuture<T> start(), M4 M. l, c+ Y* C
{$ Q8 }2 m3 Z3 W8 |# V M( X1 Q2 u
this->setRunnable(this);6 F! |( |+ U& k9 C
this->reportStarted();2 _+ F- V5 s7 s- w* q! i; ]4 B
QFuture<T> future = this->future();" e' H$ E9 ^/ y# o* |& \5 Q
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* A$ ~3 L; C; s0 }( q9 v& W- | return future;
5 O d2 {8 z; A% M }# ~) [: K3 j% j4 o& R2 D
% }) x% N/ E& }" L5 o# v6 L* D
void run() {}, W7 L) c6 }4 t/ L# l- y+ p( }
virtual void runFunctor() = 0;
6 y& K$ H6 T7 f- y};
9 \0 L; i4 H4 `4 h; e
0 C E2 E) _$ d' etemplate <typename T>
! p5 c2 q1 s, t1 }class RunFunctionTask : public RunFunctionTaskBase<T>' u2 x2 ~- _3 D
{6 F( g7 z6 v, u
public:
/ e# c; x0 A# j0 a% a# L% } void run()# l2 {1 H0 A4 j3 ~- s4 [: A
{4 V6 p# O0 C5 L5 o
if (this->isCanceled()) {
* Q% A% X6 T" ^* L this->reportFinished();
$ V+ D. `( U& n5 j) F return;
/ o9 f1 |& `$ Z1 A }
* t& B0 i. u, a- E, M! W( ` this->runFunctor(); ~6 |, y( P& a) l5 w) l9 v8 \, U
this->reportResult(result);
; }$ _" @4 R0 d& o this->reportFinished();
* l9 s# @1 U* p }
: P! I. C1 S1 E0 P6 a- H T result;
: C/ E6 g+ p) m, w' L$ j};
( o2 S$ e2 S; W) l- l1 i6 }+ `+ G3 R' G x" _$ ^% }( Q" F
template <>6 W; z: n( t7 W# |9 R! ]7 B
class RunFunctionTask<void> : public RunFunctionTaskBase<void>% z' b: p; X$ }* M, Z' Y6 ?5 F# |) X
{
! @5 k! F n X% K5 Tpublic:
* q, }# Z \2 `: w& c# u void run()/ W0 }- _( ?9 }
{8 t$ R; L& |/ t. a% o# D5 H+ x+ J
if (this->isCanceled()) {" m7 w+ B0 ^9 f( }
this->reportFinished();
' ?$ a; R9 u3 O6 [; w! O7 j return;
) w- u, c7 g. S }
u! c0 u1 U8 L" j4 d$ l* b this->runFunctor();
& q+ ^9 }' E3 \/ Z this->reportFinished();
/ e8 }- Z/ K& l7 f; r! Y) \7 P' y }
$ g1 m) J3 l0 e7 o1 F0 L' o};+ O; ~( r$ A) ]/ [& {9 J; [5 T
* `/ [. k7 y1 r% N! S8 \} //namespace QtConcurrent
; E, h; U. h# T& C. V; t3 G& y! e0 S$ f! C, j- P% }
#endif //qdoc
: o2 ~! {% w* V1 z' r
4 c& K A3 S4 @QT_END_NAMESPACE+ s! E' b# h( ?, i
QT_END_HEADER
x7 ] b& Q5 p X4 o" w8 y/ U7 B# c- U9 B7 W! q/ w, x! G
#endif // QT_NO_CONCURRENT$ k* D X" V* A6 ?) V- P1 _; A
) Z0 G# [! |8 v* ~8 s2 F) y1 |2 w- ^
#endif
( D8 U+ N+ t ^: o& q2 }9 e, T8 c' ]% _
|
|