|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
$ e1 r/ `# R, P1 X/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'8 t; i' F& b$ C" S* ]: I. I$ t$ t3 f
6 M$ P4 t9 B5 f1 h( \9 a8 O. ~
这个头文件内容如下:
" v( M% H, y/ ?9 ?#ifndef QTCONCURRENT_RUNBASE_H: f6 ^) m6 K: j r- v" L
#define QTCONCURRENT_RUNBASE_H
! P1 w, w5 ]; b1 q" d7 D. D% P: r1 l% c7 h+ O: O4 F
#include <QtCore/qglobal.h>
& C R7 \& d. t
5 S+ i9 Y% j8 ?0 N% }#ifndef QT_NO_CONCURRENT3 w2 t- w# J+ N* g- t0 m7 \: N' b
! L5 e% \3 }. Q: M/ D6 p
#include <QtCore/qfuture.h>
+ i. D7 E- F; [5 ^( K1 v( S#include <QtCore/qrunnable.h>7 G& {" U+ |9 v# O$ l/ S
#include <QtCore/qthreadpool.h>
; z) D A$ W# R/ n( h# l7 l
P8 D" ^- i$ g* S; A1 LQT_BEGIN_HEADER
- G5 d( y" |- FQT_BEGIN_NAMESPACE: r# p4 \% l- C8 M& S
* w0 f- ^! q* r+ f
QT_MODULE(Core)1 R; s# ~6 `" E! y7 J% s) n
/ @9 Y$ u! | ^, Y$ ^
#ifndef qdoc; B z# W) c5 F& h5 o$ R
, X9 ^6 I# ?8 y5 S' ?2 U% T. Anamespace QtConcurrent {' l, ]. j' ^# T8 S3 ?$ }& R
* R6 d, Q# J2 }9 l' z& Mtemplate <typename T>
% O+ j. `! M: H9 R. K( bstruct SelectSpecialization+ q8 I4 J$ S8 i5 R9 t7 o/ F$ I" y) p
{
& t* G4 O- m' {0 u template <class Normal, class Void>
2 ] v, x# U7 ` struct Type { typedef Normal type; };
4 M4 Q' ], M* \" C/ L9 c* L2 [};
$ T, Q1 [+ q- h `# E2 Z* A# F4 G$ j |
template <>
1 Z Y0 w8 e9 Q4 V& A2 m' s0 ^6 Dstruct SelectSpecialization<void>' m2 P8 U8 d X+ B A6 D; V
{0 s, D' H4 ^) r" h) S- ^' N
template <class Normal, class Void>
, x' _' d [1 J5 g" H' W# L! {% z struct Type { typedef Void type; };5 ^) C' W& ^# w. ~) k
};# l1 s4 ?7 Q/ b) w
6 u% m5 P6 Q' e7 i5 @
template <typename T>
1 U3 R" I8 s- g$ j D/ B) rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable0 V& r E" S5 s
{0 V3 v. ?0 s, k# f5 \( \/ l, d
public:
! X! [2 i& ]- U0 j/ m4 m+ n: y QFuture<T> start()
4 h% ~2 h. Y3 l$ I8 P# } {8 r F8 F0 n" u) m9 J
this->setRunnable(this);% k0 V4 X5 ]& l7 f0 H* c t/ ]
this->reportStarted();3 [6 S2 n; f% l! L. K$ Q
QFuture<T> future = this->future();
8 ]+ k- `0 F8 \; [$ y+ Y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);7 C4 m! G9 _$ t- y* J" B5 w
return future;8 @4 c, @% m2 \
}0 Z8 m: T% [! X% k. f
7 A X# D8 m4 P" ?7 S' n: ~ void run() {}
& _. A, P% o" Z9 ~- J/ x virtual void runFunctor() = 0;
9 |7 u4 i5 s# n0 X* `};
8 R- X' W5 Q& h0 ]$ m
% s% L4 x+ D$ {1 S) @3 W6 }4 |" wtemplate <typename T>7 U& A- Q" x. l+ {( B! A* ?9 a
class RunFunctionTask : public RunFunctionTaskBase<T>
- v1 o# I2 _6 V) R7 f @{; Z y2 g; s0 x! |" r
public:
8 Z" t0 e9 L& Q; j& L4 g; O! c+ p1 m void run()
+ F6 H' y) {& _, k0 C+ b {4 o! D0 S- o( ^% ]5 E
if (this->isCanceled()) {
6 D6 e! @) u5 I" v+ s this->reportFinished();
* E, L+ K1 Z t( U* d% V. Z return;4 w! d" e, z5 o5 |9 n0 V3 p
}
% U" F/ J0 V) p6 K+ U; y$ R' k7 e this->runFunctor();% W+ d1 b' f1 O- v5 x$ x% L$ g
this->reportResult(result);
/ {' ~ P" D- F; E$ `) D+ u% X this->reportFinished();
k8 U: H5 L* {# J }
3 O% e. y3 c# w ^/ x' I1 L* Z T result;
2 I8 |) ]: e h& G};
$ b' Y' \6 V: Q3 f/ J0 B: Q
( i: U1 o' r5 ~% r' k- `8 W% R" Itemplate <>: R9 O* \2 R3 D% z/ O7 u( l# ]# a# o
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
! Z( U5 ~- J" z2 U( H. F; B: X" ^{% y0 h8 O2 _" f3 j
public:) h3 [6 h1 |( v4 x, M5 v, U* ]5 b
void run()
/ Z- Z, B$ W0 F0 \3 w. { {0 U4 z3 a- g3 q# l
if (this->isCanceled()) {
: f h+ Q+ m! B* G, `; z+ m F this->reportFinished();
1 b; d8 s' u; E: v. c! ^ return;$ P7 C* \( Q2 g9 C& t
}
' d+ j( B- o' W: ^- F+ U this->runFunctor();
! ~6 `1 X& S$ H' [( z7 U" H& [" M% H this->reportFinished();
( q @7 W; _" D6 L, v }: b9 v# N) }0 l( |' a8 J% Z8 w
};
$ Y6 |- h/ x- F; P( K- m# o N8 j3 B/ O/ W
} //namespace QtConcurrent
# P! l3 Z) x1 a, g3 e& b1 A0 W& j
0 W) d8 x# p% f3 R8 }#endif //qdoc
3 Y. _6 {: Y* c) [
" ]4 p' N* _% y$ K4 |QT_END_NAMESPACE
3 K t2 x% O$ XQT_END_HEADER
" @* x+ s& L; A4 ?* J) p# V, E& f, s) C/ @
#endif // QT_NO_CONCURRENT
: o& H j; Y6 i
9 J' Q! h/ }+ H$ [0 Q: c3 E( Q; b: u#endif/ v: `0 l7 J. Q" A* ^6 H& M
' A% E8 K" K+ b" X: G4 ?; Y |
|