|
|
我对syslink进行交叉编译到arm,但是出现如下错误:/ V0 M! ]- W, _ Y, D6 Q
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'; {) I! t; S# S& M6 v+ }
7 j, V% K- B I5 @+ x, Z+ {. ?: l这个头文件内容如下:0 o! b0 f. Q( d( `; S! B4 i
#ifndef QTCONCURRENT_RUNBASE_H+ S1 M3 V+ }3 t! K7 Q$ H: n% ]2 U
#define QTCONCURRENT_RUNBASE_H
" d ], t7 q# j) A% X# \- \3 J% R2 F' A v2 A3 U' y( Y
#include <QtCore/qglobal.h>, t9 v; N) w7 {6 i- y
, @# `! C9 r0 a" i0 F0 c L#ifndef QT_NO_CONCURRENT; s0 r- c$ ^8 e
* m/ T/ Y- t& w8 {% G
#include <QtCore/qfuture.h>
; d( r$ y- `+ C g2 S! `#include <QtCore/qrunnable.h>- n7 ~0 W: G2 f$ `3 T7 h
#include <QtCore/qthreadpool.h>
! V1 M/ E! i: {% {7 ]
, f3 ~ S* Q/ d+ ~" _+ LQT_BEGIN_HEADER
7 q* J4 u& W/ H8 M+ f. k" M( gQT_BEGIN_NAMESPACE9 z' r' X) P8 q" {1 ~
. d" b& I( h0 T7 @
QT_MODULE(Core)
2 v) R4 J# e0 k0 C6 U- P4 H# \" M" }6 X9 F$ S
#ifndef qdoc
* k2 J {4 ^! V2 Y! ~ c! ~: R$ _4 @4 \: d+ J! Q0 g; X& w0 z, e
namespace QtConcurrent {! u2 O" |' [2 L/ L
! h& T1 |& [4 ~3 v& Ltemplate <typename T>
# r* \# f, Y7 w* V8 O Xstruct SelectSpecialization7 d9 O) ^! F ^, y5 H* Y2 h4 M
{2 l; n" }7 J; Y; D0 s6 n; ^- F
template <class Normal, class Void>
9 n$ V+ m+ Q, p. N* r3 v# G+ Q2 v4 V struct Type { typedef Normal type; };& D. X4 X( S4 ^: s3 L. j$ O2 T
};
' M) b" z7 @3 m$ R
+ Z) u" k+ Q) m0 A0 m' a6 \ M: Vtemplate <> U9 f+ L; X0 M4 t0 L
struct SelectSpecialization<void>
3 Q. k( \; i' D1 i{( k* R; Z+ v2 w3 h& D+ V" I$ K
template <class Normal, class Void>
: ~/ g8 E$ X5 E4 B3 ?# G" K struct Type { typedef Void type; };- O$ Z- a* k. O
};8 N% r3 ?0 i3 W6 Y9 J& x
) {9 T- c. o6 O+ T2 ~template <typename T>
* }8 s. D) \+ f% vclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! l. g3 }2 ?; w9 g4 Q4 h{
& E T$ m5 G2 Q- b) Y- }; G7 ~public:9 S& O* X) X2 u& i+ }+ W( f3 _
QFuture<T> start() H1 o/ S! Z8 X/ F9 a
{
& ^2 d2 M% Z M this->setRunnable(this);
! ^; Y- `; a% v/ V7 v this->reportStarted();
2 O9 {$ P) t0 S2 J QFuture<T> future = this->future();
3 t7 R. `/ w* s) { y' X& D( N QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
6 s' I( O% |! e) e return future;
; k- d% i1 q) w! ~$ \# |, C* M }/ R/ w1 ` _ X! r
) {4 [! b( w( T7 H) k" t void run() {}
+ ?" F# A# j! e; A4 _ virtual void runFunctor() = 0;2 c3 ]0 L7 E: o+ R+ Y# ]
};9 I, [5 U! J% o' |% y! j0 z
! z: n' x1 Z% e( d
template <typename T>( E( J/ V- c" T: q
class RunFunctionTask : public RunFunctionTaskBase<T>
5 d: M2 t; G+ }; |# C& y5 @4 C{
0 S3 w- z+ A- r) Q' zpublic:1 Y. D) N5 y( C# g
void run()
5 |/ a2 D% i6 @' J) k3 P' d6 o# i {! i# N0 l; `3 ]5 z" w+ `9 R
if (this->isCanceled()) { w3 O2 N2 S& T) A5 x5 \( D
this->reportFinished();' n: z' b" V3 M( D& Z
return;9 O* {+ x- Z* O6 Z
}
: e7 L' X* D+ P) D2 L, R; h' k this->runFunctor();* q! o& y* O& ^0 [+ G1 H- D
this->reportResult(result);
, `5 s& v' K: D9 W5 {9 \ this->reportFinished();
9 ~4 ~8 X1 }2 t4 b9 V1 w }
' S5 [) P) M( [* a T result;0 l; g& q8 r$ o! u
};
0 w, z0 L: G- D. R" v# t9 q: d7 p2 K( Z8 }+ e. v: a" h' Y
template <>
! |% A1 k+ V% E$ ~class RunFunctionTask<void> : public RunFunctionTaskBase<void>
- y! i9 ]$ L- p( k{
, `; X8 Z# }8 l. i& Vpublic:/ h0 ^% q1 A) t3 i# B6 C
void run()
: i9 k. q" }2 X4 N* F {7 }2 t' B, a+ {" k+ P1 |+ L# ?1 u
if (this->isCanceled()) {6 i; @; w8 Y i D
this->reportFinished();
' E, u& |* s- C! B return;
9 [, u5 j% R. H, _; {7 k" B }
7 f' K; J& X6 _ this->runFunctor();+ ^$ G+ d% E* v
this->reportFinished();7 {* j- a1 p8 {$ R" a- M6 W
}
) M' B/ y: @! j+ r% a9 k: \' G};
1 Q2 W+ N% \+ t" x/ m( j# P6 s# @! B+ O' W, W, E
} //namespace QtConcurrent
3 Z0 ?0 a# C/ M! G( y7 @ {9 e Z! I0 e9 _+ w6 M3 o
#endif //qdoc
6 ]1 `! ^% T6 ^2 N: Y4 w4 V. Y
; F2 }/ O5 o/ T; F( d; _. CQT_END_NAMESPACE. k* ]" U# }/ u7 b
QT_END_HEADER7 p1 l4 t p/ i R
6 c3 E. {) N) N#endif // QT_NO_CONCURRENT
8 }$ N# d3 k- ]: V) E/ w5 k# d3 _5 z& B o. [0 v/ G3 I3 W
#endif3 v* J. h8 G: R$ H
# O1 f+ K& J% X7 b6 R |
|