|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! C% j! h5 }' r" w" z& ^
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' [. n, }) ^" }& l
3 \' o9 @ [ G2 b% e! S0 ~2 {. x$ L这个头文件内容如下:
5 c4 Y* B+ R$ G#ifndef QTCONCURRENT_RUNBASE_H
& h0 Z u9 f) p) ?* F0 d#define QTCONCURRENT_RUNBASE_H* G# _+ U- [5 x5 X
! X* S z0 Q9 L0 w5 Q' |
#include <QtCore/qglobal.h>
' y+ F* n% }2 s+ V) f3 r2 f- S5 f! V7 @& f
#ifndef QT_NO_CONCURRENT% V; H; D7 C$ C$ Y! t/ t. F* I- }6 H
* u0 U% w/ J* o5 F7 O
#include <QtCore/qfuture.h>0 I4 ? a5 m5 L6 B9 Q
#include <QtCore/qrunnable.h>* X' m7 [. y" C) W3 B( o
#include <QtCore/qthreadpool.h>! @ P1 i1 ~# h, Q
0 D! e) l% [7 S5 P* C! U w4 A
QT_BEGIN_HEADER
/ K& w/ [2 Y+ [7 ?1 R$ jQT_BEGIN_NAMESPACE
% B7 a2 o6 \9 J* G# d8 ~
3 }; K; k& t. Q# t8 SQT_MODULE(Core)
7 N7 e. Z$ y, r5 j1 f- E9 v0 b/ l5 }/ Z2 Y F) G
#ifndef qdoc+ @& s3 A L) X; g7 A
$ S4 l9 u4 f) Z' M" R( \. Mnamespace QtConcurrent {" C+ E8 |4 ?6 w# ?
5 t9 O* z+ B& O F& i
template <typename T>, `: ?- o. G& X; O/ T' g
struct SelectSpecialization
) e0 `0 ^* o( {/ V' I" \, P{! d' }9 y7 s; S& o: f9 Y# A
template <class Normal, class Void>
2 I9 w9 D3 g; Y$ \5 P8 {1 L& a struct Type { typedef Normal type; };9 R5 y$ C1 A: L$ z( D& j
};
# D& ^8 k( P: c$ [ M% O, x( j2 z4 I& p0 \! h" z
template <>% d0 |6 ?- @$ U, d) v/ N5 G* u i
struct SelectSpecialization<void>
5 K, ]: V* o' B4 k{
% q4 R* _1 e+ p* z7 [ template <class Normal, class Void>
. ]- b* [0 N0 m+ T struct Type { typedef Void type; };) X; n* k5 r. A ~( n8 T7 q! P
};( ~" F! |: j8 a% o l* z2 s
6 J: ]+ E- c5 G" @1 x! D+ y! |
template <typename T>2 ^5 Z8 I; i( P! P" a3 y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. Q# ?+ n- Z' c @{- Y% ^; }4 z% N _
public:
6 W5 a" N# y+ L; Q QFuture<T> start(), L7 W8 b" s b8 @3 w2 h) ]9 l! n
{7 D2 Y+ J4 ^' |: X: @8 l3 R' a6 Q
this->setRunnable(this);
; A) [5 b' E; N this->reportStarted();
% G8 }4 Y0 D7 p I; j. |! j9 q" R QFuture<T> future = this->future();- e6 L* T3 j7 F, b. j
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( F5 c- _5 w! ^* X; e
return future;
1 x% L5 ~- {; W8 |4 @2 D }6 v9 i4 F" N# |2 s
0 J' K7 B3 j2 [! G! Y: R
void run() {}
6 p* a9 ?2 N! [+ ?9 x virtual void runFunctor() = 0;! S/ a( L# U0 E0 q
};
) v. G' h" w7 d {# f* w
# I0 _. y# k8 L; h( H2 J( Ttemplate <typename T>
/ O; C; L- M$ e4 A" nclass RunFunctionTask : public RunFunctionTaskBase<T>% V; }0 L; R. W+ j1 n
{& J6 l9 [8 v% g' g E S# }
public:- O/ o2 s2 s' x+ {$ m8 U4 B V$ X
void run()
! \1 I4 F7 J9 t: e {
6 a6 I* y1 y7 j' ~4 J8 P' j if (this->isCanceled()) {
6 i( f/ ]$ k7 B this->reportFinished();' e3 x/ Y8 X9 J
return;
! H- `, S8 k1 e }
4 l) [. n* Q! n this->runFunctor();( L) t& l* b" _7 _- f
this->reportResult(result);5 y7 m5 q( x) z6 u) {, i
this->reportFinished();0 m. D: H' k' m0 P5 V! w
} J6 v$ C( b1 O T5 C
T result;
' g' ^ R* e! T. U: ~. P};
; t/ R/ I* `8 J' E( l9 A. l: u
. i9 w) {8 {; Z9 |2 S" {% Wtemplate <>1 w5 w z( n0 A3 I* z S1 e
class RunFunctionTask<void> : public RunFunctionTaskBase<void>0 i4 p8 t8 }( H5 O
{8 A: {. \0 t' g9 `& V, u/ Z
public:
# q5 `, j2 W- G1 [: o8 x0 x void run()
" y/ c5 I7 a5 Q! v" d L7 U* P V {! [8 E2 `3 l* E" G/ @
if (this->isCanceled()) {
# `& N/ l5 z4 y: n/ v this->reportFinished();
8 C: j6 I! p: N c N return;' j# v# e6 r% W5 ^6 E
}4 [0 n" b) y, N9 H+ {- K. a
this->runFunctor();% `* b! F. B# F, K3 q" F6 M
this->reportFinished();0 W p4 ~* N' t }2 a0 u
}
( a+ F# o% |" i/ U};1 I9 p }: h( k2 d/ A5 J1 k& C q
; f% y$ e, |1 [" }} //namespace QtConcurrent
9 L y; k5 T0 c- Z5 M" I3 I7 H
d' \! O+ b5 M, h! x' A3 y; G5 V#endif //qdoc4 @2 h/ k7 ~( E6 q1 C
6 ~7 ?: P, }+ |8 K P. g
QT_END_NAMESPACE
D# d% }6 G- ~3 WQT_END_HEADER2 f2 Y$ l3 z% c7 w' ~6 T: P: L
3 g5 Z* n) ? N/ z: x#endif // QT_NO_CONCURRENT0 A$ N( I0 U2 e. O# ~
' A. [- U8 W6 [( l+ I" {#endif1 p/ B. @. s k, u& M b0 n; [9 v
, D5 }6 Q& U+ G, R$ k( S |
|