|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. J1 n% y; l& Y/ o
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
9 C( }9 U3 F" Y6 h2 }* y# T4 p
/ d4 G) j2 w! B" j这个头文件内容如下:
4 n; `: I7 q3 |* y5 v#ifndef QTCONCURRENT_RUNBASE_H
. O$ K& u5 t: o# |5 r K& D( v#define QTCONCURRENT_RUNBASE_H
_) x4 I/ g* R0 K' j1 \' \
) ^7 E6 _. ?# O+ F) ^#include <QtCore/qglobal.h>
3 W8 I3 J z/ F! R( ?/ S; c- [
. f; M; @: W# B% ^' Y& }#ifndef QT_NO_CONCURRENT
4 ?' D9 n& x6 z" U/ N$ C& C0 Y+ \* g" F+ J* m+ B
#include <QtCore/qfuture.h>
' Y0 i0 b: ?1 f ^#include <QtCore/qrunnable.h># ?( O. E" ^9 u- k+ F9 j A
#include <QtCore/qthreadpool.h>8 p$ k; N% ]8 P# K
. F" g( O: s! k% n% ]1 u7 W. \QT_BEGIN_HEADER
/ y0 D' l, q8 t3 H! K% vQT_BEGIN_NAMESPACE
9 n) V, N0 @' o2 ]6 d. J1 _) i7 u, r; I, J% {
QT_MODULE(Core)
2 M! V+ q1 W7 N/ l
0 y) N; E+ A5 y2 p$ D#ifndef qdoc
- J5 s+ c U: B4 O9 m, R2 e* S8 a- j8 D1 _& j5 o' Q
namespace QtConcurrent {
8 @0 _1 ^; _& [& k; D! R0 ~4 c/ K; o2 J: J/ h/ v' R; Y
template <typename T>; m: T) J' j; G
struct SelectSpecialization2 G S+ i$ ^9 z* x. m
{4 U# ~% z' g* d% q7 D
template <class Normal, class Void>+ C) H7 P# s/ H/ v/ B4 c8 E
struct Type { typedef Normal type; };
9 n( m5 A" L# d% N3 r};
. o8 r: B& L. T' _! ~2 u6 ]
+ S/ b' r$ U7 c) d: l- r3 E9 mtemplate <>
. Z6 d6 G. l& j# p) _struct SelectSpecialization<void>
6 ]: C- G& W, n1 u& ~{8 q" Q9 C0 L" M+ t* i
template <class Normal, class Void>
4 R, q7 m4 L) H struct Type { typedef Void type; };3 a3 E7 `: q# F( k) q1 b
};
) ~/ }% i: @( T* _
6 A0 |9 s! \4 N4 [6 n9 |template <typename T> U, h. P; z+ l0 q0 m$ U; F8 h- E
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
j1 g. o, i3 @, _" K. X- Q- D) p' P{* V( X% z% H& F3 N8 K# g1 d" z; }
public:( w" } q! s# i( D' K9 B9 ^
QFuture<T> start()
0 ^6 @% J* ~7 ^ {' J" @2 r% D8 P% t6 J# R0 k
this->setRunnable(this);4 }/ s0 X+ E# x4 m3 ?: O
this->reportStarted();
. [( y: h8 n% l# j2 A QFuture<T> future = this->future();' q8 v: U' i" f+ R: O q4 o8 O6 W
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& N7 e2 G8 o6 T2 W$ C
return future;
" l: d; y) n$ b. y; K1 H! j }
: Y$ D0 m- m/ ~- G d% |" e6 r
# _9 v' O- x0 T+ N+ E void run() {}$ O& |4 ~/ J- }/ y A& A* o
virtual void runFunctor() = 0;/ [% }+ Y" x2 d5 A4 z. y
};
: u3 m: f' u/ `8 i1 X) v8 B9 k
& ]" v9 ~+ e9 u; f3 j8 \( @ Ytemplate <typename T>
8 `/ e+ [4 y2 d6 z+ b; D" Iclass RunFunctionTask : public RunFunctionTaskBase<T>& q) `, P" N0 {' w/ N" e1 P
{6 n& _1 f1 ]9 g1 ]. a
public:
" P0 y9 j- `8 o% S void run()
. k/ a" X$ U& K: k {$ F8 N4 q0 K4 A% m8 w
if (this->isCanceled()) {
& x) F2 t6 z: E+ x% J this->reportFinished();
0 h8 f! g- J0 V! p' C! O return;
) j4 m/ Y2 v' N: l0 y# c9 v }; q. u, `0 ^4 R' B2 G, B
this->runFunctor();' y; m/ X/ a, h8 y
this->reportResult(result);
9 z' J7 t# U5 Y+ a this->reportFinished();
# c! e; L2 c. v$ T: R6 ^& ]" F }4 E& l5 l0 \5 p5 {# s
T result;
1 C5 O5 S6 @1 N& k& ?$ @& K};
8 ]0 E5 ~# n& H1 M. K! V( T4 c( m/ Y2 T% H
template <>! [" j& \# G8 I
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 S/ j, T) ^/ g6 o! p3 f{
; K& D: \8 F& |/ l& `& kpublic:
4 {! `- l' l0 k5 Z void run()
+ q, k) `5 p+ @% q+ e, M {3 J6 r2 v1 R& J! J5 ?6 a
if (this->isCanceled()) {
9 j% N5 q1 {' y. ~) H this->reportFinished();/ }" D K6 H6 D3 a' J) b4 v) |
return;# @1 Z0 q8 T, ^
}/ q# @3 ]9 k5 h) P0 s
this->runFunctor();
( R2 i; H3 h: ]+ {2 A& y this->reportFinished();9 r* i" T6 J4 l% F( W) q) K
}1 r7 q- D% T1 l; }/ }
};
( D& L" ^: {/ A6 a% a( l- \% O3 P2 ~, B; D: ?
} //namespace QtConcurrent* P4 L I7 Z5 K
( f' x7 W" {, H6 s6 a
#endif //qdoc' Q. D$ D3 E6 n) P# U2 z5 T
, a6 q; T- w0 u3 k' L( _/ D
QT_END_NAMESPACE( ]: |# ]/ v. Q3 [* D! M
QT_END_HEADER$ L* d$ i6 a* D$ G
% ~( u9 u: a8 B5 h
#endif // QT_NO_CONCURRENT
1 E# _) F+ \2 r. ?# D
- P! M7 l6 V' `2 {2 Q7 G. w6 k#endif
4 t% I: R6 \' N- U: R, ^" J! X2 }1 R' _
) O/ A. Q7 B2 c b9 k, Y |
|