|
|
我对syslink进行交叉编译到arm,但是出现如下错误:2 c8 z' ^6 U5 [( Z6 e3 m: n5 F F
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
) D; b6 h& ~/ m
! I: M1 x/ R) n- `. \9 o这个头文件内容如下:
8 p- T0 ?; _2 I1 C. l6 g6 @#ifndef QTCONCURRENT_RUNBASE_H1 y/ d- J! A- l& j- T3 A
#define QTCONCURRENT_RUNBASE_H
0 u& C) W; b6 V: R" l
, i. B! i$ h0 v. c#include <QtCore/qglobal.h>. c! s7 m3 F2 J l* x' e
/ K" e1 p" C, A7 j. Z/ {#ifndef QT_NO_CONCURRENT
1 s }5 s+ G a! e
3 k* _5 K* r, U#include <QtCore/qfuture.h>
' H7 |+ M' |$ ^6 K8 I$ r#include <QtCore/qrunnable.h>& _: I) Q& a- z( C& q: Q
#include <QtCore/qthreadpool.h>& d9 Y2 |# y+ m6 D) @1 a
8 `3 K% R. T b8 w
QT_BEGIN_HEADER g5 o( `8 L* `
QT_BEGIN_NAMESPACE
! U) \- h1 Z" N0 W" t
9 I& X7 p% u2 P+ u3 `QT_MODULE(Core)
+ }0 E: `" U5 V7 p. j/ N& l. v Q! r0 w' k' n
#ifndef qdoc, ^: T- p7 c7 V6 {# G n
: w! ?4 R! Q$ M; y0 _+ ^
namespace QtConcurrent {
9 m1 R3 E0 ? T/ h( ?3 Z# u% I! _' \* N% t3 C: |8 B
template <typename T>! z* R, l! m0 a0 ~3 p/ H. T% n @
struct SelectSpecialization: u4 I& q$ C6 G4 h% l# W
{
' n5 c! m% N% Z template <class Normal, class Void># U2 _2 q* ?7 j4 q% ^2 _! ?
struct Type { typedef Normal type; };" u1 g# Q! j9 n+ M2 r
};
7 G, Z6 q) k0 C3 j, B$ R: V9 z4 o: V5 r
template <>- `" C1 H ]9 x2 o& Z
struct SelectSpecialization<void>
5 \% c3 t- A( \2 J{: {$ ~" B' ]# l- C, I
template <class Normal, class Void>" z& @6 j }& f% O" a4 B3 s! d
struct Type { typedef Void type; };8 ^! T( _. x6 O1 R& @' y+ o
};
- n0 z, h0 F0 U* {3 |# U; w) D; }3 @
template <typename T>3 K8 ]4 L" y+ Q4 J+ O$ ?+ ^
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable9 Q5 }! I5 F- a- C) w1 [% M
{; z1 Z/ m( _* _7 p5 j
public:
/ {) C& u: ^ y QFuture<T> start() f- i: q% K, v; N* g. G4 d
{) i+ ]! G8 B6 G1 N6 h) y( g& [7 @
this->setRunnable(this);. O. H' M9 n6 a6 I+ _& c
this->reportStarted();5 c# {, Y) A5 e1 v3 \' Q
QFuture<T> future = this->future();& R+ g; B" X! q- v
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
# e6 M1 @$ j( L- | return future;
) P- B- l& q% Z2 p1 o }
& F& }0 `: T7 L2 t' j( T1 P' j! u8 K$ J) Z+ z$ p
void run() {}
2 e T I7 P# s( S, @ virtual void runFunctor() = 0;
$ Y6 Z3 ^; t) a9 X% K};* P" ~2 f4 O! U) U. M1 x0 |* i
/ C8 i# | x) v: d+ d) p' X6 v9 y" B
template <typename T>
' e3 c# q- g2 m" T' I% Cclass RunFunctionTask : public RunFunctionTaskBase<T>
) ?$ d2 g* e, {- C Z{0 n* }5 o R) J
public:# R& q# D$ e, x( N7 p
void run()* X& S! @) i) Q/ Y# U' x( _/ n$ l
{, A- p f6 R) q" }) n. @
if (this->isCanceled()) {) I$ ~) x3 O; E7 X* w0 }
this->reportFinished();; D* h/ V4 _: K: p0 _% o5 N. N' ^
return;7 F: ?4 J* W- {7 t
}0 Z' g8 u/ W. U$ w% U/ J
this->runFunctor();4 C- x y$ o4 X5 L& b
this->reportResult(result);
/ r' y$ a( w1 J: B- ] } this->reportFinished();1 r* J3 Y7 c& K! l9 r
}
5 y& w) Z9 Y$ c8 N T result;
8 }! O4 R. p1 z2 C7 M4 C}; _+ w, c: u/ i
7 \" ?; {5 q o* W6 v" E$ Qtemplate <>
( w% o' u% Q2 e+ T' C( V5 V5 Iclass RunFunctionTask<void> : public RunFunctionTaskBase<void>3 r2 |) h# W& J' k) I3 X
{
! A+ v) u& t9 r# X) W' ~public:
2 Z& Y& x3 N4 C void run()% m5 e# E+ Z3 a0 r2 ]/ a1 E. Q
{1 i& k# `4 D9 U0 |: K1 Z
if (this->isCanceled()) {# ~1 N6 [! {+ F! M! [9 o+ V
this->reportFinished();2 g) N0 A; d# e5 P
return;
3 V5 H: z# J3 u! w5 H }6 }5 P% d6 s5 v, a
this->runFunctor();0 Y9 J8 i4 [$ V* v) M1 H; [" n4 |: w
this->reportFinished();7 N- ` h" S: v/ v7 t5 m4 O" U7 N
}
P8 I/ Z# a: k4 R};4 x' q& h$ E3 c% J2 A; P6 p
# o1 a K- W: j' {. a, ~} //namespace QtConcurrent
2 [: R9 e+ `3 K# F2 L- W" B+ o ]: ?/ L0 {
#endif //qdoc- g9 u. C9 s- y4 L5 d
@" d8 A% t* k) J6 Y
QT_END_NAMESPACE
5 b. Z9 `) S8 i9 kQT_END_HEADER2 q) v: L; |5 }5 h ~
0 |" F$ W, E+ x
#endif // QT_NO_CONCURRENT7 \" d, e6 O1 y1 I) c% z
# K0 Y" \, P: P) @
#endif
5 H- R7 ^" L7 {
! k0 D8 B; m0 t m, D& M |
|