|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
* {2 K5 h" w+ n# a9 |( W/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'; v* V+ |% ]; \4 I, x
# V9 F$ |+ }( I- y: W) u' W
这个头文件内容如下:6 f1 b* `/ b* A* s
#ifndef QTCONCURRENT_RUNBASE_H+ \' p' X) K$ o" ?
#define QTCONCURRENT_RUNBASE_H' ~) Z; E0 t/ q- g @& _+ Z
' X( |6 b' `0 G0 x' g: o
#include <QtCore/qglobal.h>
: [4 _! V/ K/ A' y, l0 N, B o! _, m/ X" [5 }/ t
#ifndef QT_NO_CONCURRENT
/ g# d& y8 y* O
* P' ^5 ?. G/ E#include <QtCore/qfuture.h>
2 i0 d( ^; |% @' P3 F+ b#include <QtCore/qrunnable.h>
' C _9 i" D3 e: b; K#include <QtCore/qthreadpool.h>0 {, M) ]3 f# q# @: A1 a. a! @
4 z) D; m7 e0 z$ TQT_BEGIN_HEADER
% k$ W3 G5 A, G/ ?7 ^: e! _1 j2 YQT_BEGIN_NAMESPACE
' y7 F7 Q( ? i
3 ?) p3 W* w+ _0 jQT_MODULE(Core)7 e& D! N; W. ?& X4 `9 \* O
% i/ s! v9 ?; b) c" r#ifndef qdoc
2 Q" K% M: {5 t/ o3 T u
5 q0 g2 y r" F% Q; Unamespace QtConcurrent {; o N2 }) p" \- z5 u! |
' o# A7 W/ u" e9 o+ Z6 _: @
template <typename T>/ X$ U1 k7 k) P. p. X. f. N' E) s
struct SelectSpecialization3 W' C+ t% b4 J8 N6 `( q0 E
{* ]" s1 |4 o- `/ o" Q0 X! D9 Y& |
template <class Normal, class Void>
+ O0 X$ d: O& H struct Type { typedef Normal type; };& @, o+ S1 r+ p# B
};
2 B5 c7 D+ {3 O1 e0 E* Q% B4 c- g O( _( p, y: E! q
template <>
3 R* L1 i) D; s( @# Fstruct SelectSpecialization<void> u% `& {: f9 o {1 E
{
5 C J* L1 ~( M4 v9 y, t% v7 W template <class Normal, class Void>- @8 \3 n% s. J; e
struct Type { typedef Void type; };0 D' E2 U+ ?* T$ j9 c' z3 N
};0 J7 ]# T& T( }! g1 a5 L
+ Q% W+ S5 t8 |3 P3 W. {2 o, T
template <typename T>8 E9 b, r/ F1 D# U, w5 P2 S
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 s- s' ?5 ^, i; _% e{, [2 v! Z) | V. D3 k7 |3 e
public:
- S+ Z1 k( H! ^4 P5 L8 S$ f QFuture<T> start()* x. v6 ~8 f& r/ ?0 X3 ^$ w
{" A) G# `% b6 Z" j3 ]2 Q2 @6 N
this->setRunnable(this);; T5 Y! k( G4 @/ u V6 `0 o
this->reportStarted();# f$ V0 q+ n5 a% w6 f' d
QFuture<T> future = this->future();" I/ N: N, W! p$ r! I/ e ^2 a
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" H( ~: F4 u) Q9 B7 o$ ~: p
return future;
3 G8 N5 e, g, g6 |7 l0 L U }
$ O9 i7 _5 M5 E
& z; O: x. g |2 X- u void run() {}
& ]+ O' I, R1 g3 w6 g+ \! v virtual void runFunctor() = 0;
8 a6 I; Q) T8 h+ z+ B0 ?0 U: }};
]" O e& S* N( t* p) d; n1 I) U+ y: {2 |) Y* x+ l
template <typename T>
& `% ^/ K" _8 q7 j5 a) S2 `8 X& z9 aclass RunFunctionTask : public RunFunctionTaskBase<T>3 d6 ^$ U+ c }1 T; |% ^
{3 a' C. @3 U2 p4 _" L. Y
public:+ c! [& W6 Y! @" d8 l7 q8 C) r
void run()
8 v9 b, z! a& c7 {) y+ Y {
/ e e" c! D! A& T* r- A9 Z; V if (this->isCanceled()) {0 ]; `& ~% A5 w3 l
this->reportFinished();5 s/ ~/ L3 F5 a
return;% ] V: F& Q% E8 k$ o
}
: F9 @7 q6 v3 q" @! b% @$ U* ~ this->runFunctor();
$ S& S- M o# T7 I# x this->reportResult(result);
" u& M4 \! K; { this->reportFinished();
5 u' u. `; |: |' D! m5 N$ `: _$ T, g }: f: R" }/ g4 o' {3 e3 v! B! i2 J* U
T result;+ \: `9 J) @* c+ N
};$ _% m1 i. H. R6 Y4 a8 l0 {) H, V
2 I- q$ ^4 `5 B# P; P* i/ F, Ctemplate <>
4 q7 m+ a u# Z0 D. N1 q. iclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
) {5 G6 H | N{
% A" ~ v3 y8 P' U' ~6 Fpublic:
7 T4 t$ }. O+ k8 Z& ^' n void run()% R# m; i6 F) ^, P" x
{7 ]; W) `: a! s- O. ]! W! D
if (this->isCanceled()) {
( y1 V2 H! R' O this->reportFinished();
! Y. q0 V; |& n8 G return;
. X$ i2 J% F; \: o) s2 R }
7 |0 B- [; C( l9 D1 P0 c6 U8 F this->runFunctor();' X! G# d" [& x
this->reportFinished(); L% ? G) w) ]
}# s/ w r; S1 ^8 I/ g
};! r2 y9 { J, S9 u( C+ d J/ U
6 ~/ t* g' I5 t3 }( s: S
} //namespace QtConcurrent
. }$ j& p W$ D- i( Z5 V( z) f* A6 Z3 `9 f
#endif //qdoc
: v# G" R( I* {
+ c9 \2 m) G. n# b4 j+ }QT_END_NAMESPACE
# k7 ^3 @( L4 m2 F$ ^+ gQT_END_HEADER
& C2 }( n+ n2 z( @4 c3 j8 g) e( v+ C# q
#endif // QT_NO_CONCURRENT
+ z( ~+ S3 ?( E, m7 b; h* J$ f3 i5 e3 k& t* K
#endif6 F7 f5 e* m/ `, i( i4 Z& V
7 t! ^. l$ f$ T% M' h |
|