|
|
我对syslink进行交叉编译到arm,但是出现如下错误:1 ]8 \6 C' ~4 K5 F" 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'
* U1 }$ I7 ?4 y# g0 {2 [! n5 r$ N
* _5 F' @: b/ O3 t" Q- M, y' K这个头文件内容如下:
b" m4 T* j9 ~#ifndef QTCONCURRENT_RUNBASE_H' R4 a4 ^. p) I/ ?
#define QTCONCURRENT_RUNBASE_H5 w0 V9 o& F% f9 U5 f
' f$ l. K9 r9 V/ e9 ?) v. q; {#include <QtCore/qglobal.h>+ }/ K3 A: @; V5 H
4 n3 B: E8 [! T, N9 g
#ifndef QT_NO_CONCURRENT; D' g# ]* S. z
t0 r: \( j4 f8 Y: O& f
#include <QtCore/qfuture.h>& I; t" e l; ~; z2 S
#include <QtCore/qrunnable.h>
" i- F) Y0 M! d1 x' _2 o#include <QtCore/qthreadpool.h>
! I2 i/ b. I) X' O9 b! v) w9 d! o5 v) ]7 K/ f+ \, h H, k
QT_BEGIN_HEADER
( W% M6 i$ S+ x1 ZQT_BEGIN_NAMESPACE
6 n6 F* a" b* @8 ^7 m( P' u8 @
+ @' q0 J/ x0 v: v% g) u( eQT_MODULE(Core)
1 B4 \( L8 M, M0 {3 s% d9 ^% d& \1 ^( Y3 I* t
#ifndef qdoc
4 N# W9 d! L3 K3 i. l# N% H/ N; m9 b; l
/ {5 g3 `! \" O' u2 p/ Z+ inamespace QtConcurrent {* d/ A: v9 Y3 s
3 G" q! [+ Y; z; R h9 q
template <typename T>
# ?6 a' G2 h' X8 K8 Ostruct SelectSpecialization
7 c+ l8 R! j" O1 D{
8 @/ l! F+ ~5 w a% ^8 T template <class Normal, class Void>$ q& o! k) r+ h5 Y0 g
struct Type { typedef Normal type; };8 R7 U T# W: j5 ~- [
};; a: h9 {' |8 Q; l
; J" _7 E( i9 {8 ~( d$ c$ ]: ]template <>
* |4 h D i6 |+ R$ b* |( A3 Cstruct SelectSpecialization<void>
, i) R2 M, k3 A& M{
# ]0 m$ R0 O* k% { template <class Normal, class Void>5 S: r0 I6 y0 e3 i0 C
struct Type { typedef Void type; };: p0 g* S& V4 E/ v, o2 z3 }
};
' { N+ C# g8 ]( M' k' D2 R
* d' u, C/ k/ u) _template <typename T># v' L+ b# n8 s s9 v6 h% w- Z- @
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- `6 f, I8 T" o+ k; A
{6 f( t7 M E9 Y* }4 X5 c2 q( ^2 N
public:
; G+ k# K6 J0 D9 t+ K QFuture<T> start()' y- G; R) U. K$ Z
{
8 E, s! `3 c, p* r8 R this->setRunnable(this);
1 `4 a7 u& N0 p6 o( I o this->reportStarted();# f; ^! l. ^: y
QFuture<T> future = this->future();1 a" ` j- ~: h0 r3 e$ H
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
# o/ a8 R/ O0 K( P0 b3 k# e4 { return future;3 f. I5 ^ Q4 s ?
} M9 n! T% q: a6 j
- W& b# m9 s% E! G; ?! q void run() {}
/ f/ B0 x4 |, J0 L/ k3 v virtual void runFunctor() = 0;$ O/ q8 e7 f) H
};( @7 r1 k& }8 I
( L* w; G! r, {' j& V
template <typename T>
2 L" T3 k- ?, c; t+ S2 j0 kclass RunFunctionTask : public RunFunctionTaskBase<T>
9 J& `$ y) o* x' y1 B{
: H9 X+ _6 m( F4 V/ xpublic:
& ]/ I9 |8 x3 b9 v5 o void run()" T6 j& o: |3 b9 N7 A, _ P1 \' v
{
6 k/ j+ V$ B, j& n$ _/ t& m if (this->isCanceled()) {! ?2 a" l) W& N6 p( E
this->reportFinished();
2 p. L* W ~/ V" T return;7 h& i) d f7 i g
}
& Q& G8 v$ D3 i3 { this->runFunctor();
# O* P9 U1 J u+ N# q this->reportResult(result);
4 _9 Q9 n1 o+ h F; E8 {1 E this->reportFinished();( z5 j5 s+ y$ C7 \7 y! v# J
}
4 n' O; `3 h% y T result;
/ Q( }& H) p \" o};
) U+ z/ q/ E7 {, O. T Z; ^4 h" |! _" N# ]& U/ @ J6 Q0 J
template <>. A% c4 A% D0 @ G2 ^; J) v
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
1 x# t& j7 X8 u6 a% \% g/ {{, `" ^2 G2 n* G" F
public:
" { D; A( v1 B% [0 v) }) }0 {" j' | void run()) V) T: I% b, J9 Z; `
{
; e- O+ ]# P g4 m! N1 _ if (this->isCanceled()) {* j7 k* [1 Y% |
this->reportFinished();
! d# m! K3 l7 M C return;5 H8 U; _) A2 a6 L: h
}6 }3 R% E$ U* s; p6 z* \/ q# ~3 b
this->runFunctor();
$ N" [$ {1 G0 N* b j4 h this->reportFinished();
@% e' z) N5 ?9 c6 R$ G. \ }% @% O4 F2 z4 @' m) d# h! N
};5 Z* `* [8 W3 ~$ ?3 h0 _$ q# w+ `
8 I7 J5 P, ?3 T} //namespace QtConcurrent/ u/ u" @ b: }( R# k5 C
8 \& D: ?0 g, [+ m. K* Y#endif //qdoc9 C- B2 @ T" e+ U5 ]' o) \. V) [
/ F5 ^( D' @- f, u5 KQT_END_NAMESPACE* I/ ~7 D7 @& j' Z7 ?: u) R
QT_END_HEADER! I. s7 W# B# e* e0 g
4 w' _' `$ K. c v2 G7 J#endif // QT_NO_CONCURRENT
( w/ O# \+ t" l1 x7 @8 U! ~+ d% {4 Y. T8 A
#endif) G; |0 x# M2 w6 @2 ?$ G/ C7 k, x
7 H0 d0 d& T; E' A6 _( I1 H |
|