|
|
我对syslink进行交叉编译到arm,但是出现如下错误: s( t8 |5 E* u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: L! x0 O) [. ~
5 `6 N# C( v) f& {/ _这个头文件内容如下:
2 ^: R4 ~6 q, D8 g#ifndef QTCONCURRENT_RUNBASE_H
% L2 w7 A2 R! Y" n6 R/ C#define QTCONCURRENT_RUNBASE_H
1 C( b* {: {# W" U+ v4 d+ |
1 L7 l1 f1 q2 O9 x+ _, U% u#include <QtCore/qglobal.h>
' A+ X1 g( P( n! \7 i
X$ I8 Q' A+ E: k) t( w#ifndef QT_NO_CONCURRENT
& y! G$ N' o0 U8 b8 ?6 ^- k
* @ |5 n' r. U6 D8 g5 X0 M#include <QtCore/qfuture.h>
! A' d* x* y( b8 n) P! j#include <QtCore/qrunnable.h>, H4 d5 Y# }# ~1 F
#include <QtCore/qthreadpool.h>
, L7 y$ V, L* E' C2 ^: Q! @8 S8 k+ `" U8 b
QT_BEGIN_HEADER
0 |5 f' m0 ~- v2 I2 x( t5 ^ nQT_BEGIN_NAMESPACE
7 S& f5 G& U, t2 Z9 [$ ]# g! x
) Y& p# S; W' |' @QT_MODULE(Core)
- @+ d0 j4 p9 I' f
* Z7 o, \) N7 E. Q' o#ifndef qdoc3 E' T# K9 C2 t! R) ?& q+ ~- H0 {
& k. l4 O4 [# Mnamespace QtConcurrent {
2 Z. F( M6 ^5 [( f/ p& m L% w4 V" c8 i" i, T1 u/ z
template <typename T>5 ~5 C# L& w7 C! M
struct SelectSpecialization. u( b( ^, J0 k) [8 m1 J# ~) l
{) _5 A" ?5 z+ q
template <class Normal, class Void>& @: R5 U/ U. x) C
struct Type { typedef Normal type; };+ G0 ^0 A/ v" E1 J
};
% R" e) G) b H3 P- U6 R+ z( U
# \7 [1 Q! ~+ Ntemplate <>
, X4 N8 R7 ^1 E4 p3 ]! Xstruct SelectSpecialization<void>- H$ m9 f1 w7 R1 b L' A
{
7 R- ?; i9 D' c template <class Normal, class Void>
6 V4 p/ Q: E$ g) t8 ]4 E struct Type { typedef Void type; };
6 J7 \# y7 @0 i1 J7 D) \4 P6 y};
0 A+ ~4 P, p2 ^: O; C6 y F
! U. }) c" e, \% j- stemplate <typename T>8 F2 ]1 a5 \& a7 N( ?7 J3 Q3 _
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable* _5 S+ }# I/ s5 h) Y t4 {
{! o, w" r+ U4 T% ]# Q/ Q! O$ v8 ~
public:
6 F5 C. I# \) l% T4 O' y QFuture<T> start()' W3 }# _) G4 T7 C
{
% Q) z, X6 n" j$ V+ M0 ^0 ~- J. _1 d this->setRunnable(this);) j; r) `" j) _1 p8 P
this->reportStarted();) @0 G, i) g) R6 w5 X. D
QFuture<T> future = this->future();0 l; g8 I% }# S( {# O- h6 n7 O
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; s' Q4 ~* N6 C
return future;& a; ?3 E( ^; d: u5 \3 ^6 W
}0 x. P1 r- b. }# I. _* F0 M1 p
4 k1 I3 j6 V/ u; _/ ? void run() {}
' _& i, b- Z) f" L, w$ ]& Y virtual void runFunctor() = 0;
$ y( V3 Y" k5 c& O};
/ @# F2 }+ d6 y7 |1 i0 h: N) {
) W2 x" }7 K. w: stemplate <typename T>
" L( p$ }* T: `class RunFunctionTask : public RunFunctionTaskBase<T>+ s5 _2 a1 F1 l
{0 q6 g$ K s! h+ k; v
public:! b0 D2 C* b1 ]; x& s
void run()" k, j2 ]1 S7 |8 x: M6 A
{
" r, J0 R1 D& E* J$ @; ~! c if (this->isCanceled()) {
_+ ^/ d" f W this->reportFinished();* `* q: k& T7 C% H; s8 c
return;9 S! S* G0 V% x9 l
}
4 X( ^3 v4 F) f* L. k this->runFunctor();( O' `, i0 e: R4 H
this->reportResult(result);
& ]. j; W& e3 V( L2 b this->reportFinished();
' ]4 e% [* \; }' _" w Y/ p: p }0 R" y/ W# x# v8 F- V/ _
T result;
) i; m- v; j" i% ~" j9 z};
8 V6 a9 c" f, ?* _- `/ M9 L% K2 ] P* s; [" o" u' l
template <>
% J' S! J# r) _1 g V, n9 s1 o. t1 Qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>' e2 g" v% F. y; M
{
' [- ~. b+ H8 G% t7 C; Fpublic:
& U. O; ~7 v4 W* x3 c: n void run()0 [$ k3 A$ z2 x/ n z
{& a2 j4 D; W0 l+ M' b* }/ ~# A% |
if (this->isCanceled()) {& V5 p, [% _+ j
this->reportFinished();$ K v3 J |3 t% T; U0 Q
return;
$ E1 ^8 M9 u. v/ s. z } S4 s; _0 I+ s' R
this->runFunctor();0 b) Z6 L) J$ P$ r
this->reportFinished(); Z. _* Z! o# A' B9 y3 N
}! }5 C; N* i. x4 t) `& Z" E
};7 V( F/ ~! r; p; Q1 p q8 F0 V
5 M5 I# I0 Y3 A6 D} //namespace QtConcurrent# y! y% j8 u! g ^/ z
1 z' S' e2 p2 N7 {( l- y
#endif //qdoc; ?7 B. r2 ^4 a* I
- R% h: l4 \* u) _) `, ?* ?- Z; Z
QT_END_NAMESPACE
# n- e# {6 w, V y# n9 eQT_END_HEADER
V, Q6 I) y5 P) M' U1 D# D9 Y1 [0 ]6 @9 K; J
#endif // QT_NO_CONCURRENT6 O y( `0 x' A0 r4 u6 z, J
o8 F- L/ \/ m! d" A! F#endif
; M3 h# j+ B% L* Q
+ G5 e! B7 \" Z2 e2 @ |
|