|
|
我对syslink进行交叉编译到arm,但是出现如下错误:* `1 ]; `. X5 h6 }+ w8 J4 D6 N5 B
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'* L7 S2 t3 i8 b; ]4 }! R% D
# c1 U- }* p+ |% Q7 y这个头文件内容如下:
3 m' b7 \5 C% g! t. V#ifndef QTCONCURRENT_RUNBASE_H* |) @1 x2 {' E
#define QTCONCURRENT_RUNBASE_H
" ?- {8 e9 g5 h3 g
, e, P" w* e5 w: z6 }#include <QtCore/qglobal.h>, T* r* [& V8 ?$ u( M
. D9 Q9 h, L5 `& @) r#ifndef QT_NO_CONCURRENT9 b' |9 Q) o$ Y
9 y* z, S, ]5 y! g7 g; w" V% T+ U+ h+ K
#include <QtCore/qfuture.h>* N" s7 y6 Q( s0 M! z& A( m
#include <QtCore/qrunnable.h>
2 X. q6 A9 e' Y' T1 m3 s#include <QtCore/qthreadpool.h>" c% g7 u( N% z" y
, }1 x* P5 ]2 T+ T% DQT_BEGIN_HEADER" j2 R ^& I, ? Q1 X6 [
QT_BEGIN_NAMESPACE; \% k2 h1 u0 L; M& k X( u
0 f! {1 K/ B, N( g( u( R
QT_MODULE(Core)
6 I5 @* J; R: i& n; C y: Z+ m0 x+ s! u) h; v- z0 h/ n
#ifndef qdoc% T8 g) p' U7 e; v- o3 O: U* l
& v! A& B6 h) p9 h6 A( H; ]0 F
namespace QtConcurrent {
5 z7 `3 I: I3 N8 o4 e8 S6 l/ a8 s4 h$ p% _' T5 p. C7 {. L g
template <typename T>
$ ^2 w% Y+ a. a Ystruct SelectSpecialization
4 d; {) Y) p6 x/ h9 H. s1 {, x{1 J E" l6 J- M! v: P1 z5 v
template <class Normal, class Void>, B! B- a1 e; D- p
struct Type { typedef Normal type; };+ ] H! E2 Y0 W! l
};
8 W0 ~* m: d( O3 n: A. H6 n- K, v. o0 @/ P2 h6 g9 V
template <>
& q# A+ S; C+ K, w: Q8 f8 Y0 k" Bstruct SelectSpecialization<void>
# H& v2 c' f, \% @( M$ s" X! T{
6 ~' ~# }6 v: C template <class Normal, class Void>, v/ U( ?4 }( v+ ] N, [( z" ?
struct Type { typedef Void type; };# t' t8 U+ I% h
};
/ g! e" h% T: X4 U
% T$ g0 \2 B! ^) j# G9 \9 {template <typename T>
" [8 w9 U ]; z. Dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable7 c5 p) t' g, v
{
' i0 ~ L3 \, W W7 S' Rpublic:
t# s- K& A4 H* D QFuture<T> start()
) O! H7 V0 F! d" h {! L# j: [. r' l* O' v
this->setRunnable(this);* Z( m, J1 R( l* h' u0 R" B
this->reportStarted();
& Z* W, f/ m& h4 q4 P+ j5 v) s QFuture<T> future = this->future();$ O ^$ A$ f& `+ D: t7 N( H4 L. ?
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 X0 Y A# J9 }0 n0 r$ X. Z! D, u return future;2 f1 }9 }9 J/ J6 ]" v- x) N
}
9 W! G( b& I# R
& G; ^9 j& X: _0 [# @ void run() {}
" \* F* b& l: ?- p1 y' [7 N virtual void runFunctor() = 0;; t1 I! b W: B/ N3 q* N: M
};+ \ F/ V! \6 B) Z& g2 b
8 d: Z2 F! X3 q4 v7 m6 ?
template <typename T>
- A0 Z) a, t& [9 K4 H5 W+ qclass RunFunctionTask : public RunFunctionTaskBase<T>! y* B. o/ n) |
{) _ I! a/ ^) @$ K' B0 A4 O
public:8 l. |8 L' L2 q: ]1 g
void run()
; i& t: G. k# v! w4 f' e {7 y8 J+ h% S. z' E e& v
if (this->isCanceled()) {* f9 }* o/ x+ y% `. h! a
this->reportFinished();
1 p' V. w$ I3 O) p* J. b- b, Q/ S+ A+ [3 n return;
" c6 E& z- K; S0 w/ p4 W6 H) P }
2 O) T9 q9 q. s$ U) C this->runFunctor();, L- Y% c& p; D$ ]" a1 P" j" B0 v
this->reportResult(result);
7 C x$ Y9 }$ b K1 o# |! S this->reportFinished();" _" c3 y8 w- c8 b: s5 \
}
7 e" I% E: Q- b+ [; h! ] T result;
6 n2 Y+ ^: y0 |' U/ Q w0 q};6 {7 @) F4 c" a( n
, o& q. w0 c) Ctemplate <>2 R1 x1 r8 r# i7 ]
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
- j: n# _' N& w0 p) W5 |5 |' ?7 L{. u1 P1 `4 a9 {/ }8 M
public:. A* N+ x+ B, c: r4 |, J1 n/ i, g
void run()1 [6 o/ h) N" K
{
|# C/ Q, _7 \& C0 M- s( o if (this->isCanceled()) {
& c3 O9 j9 K# K6 X& R7 U+ l this->reportFinished();0 a0 G0 ^& M/ U: n' w8 X5 F4 j8 f- V
return;1 f$ O( ]3 p* w( j
}
7 z( S, \0 s) _) Y this->runFunctor();
: w% C _* ~- R9 L this->reportFinished();
* S8 _1 L. `& U0 s2 ~( n2 o+ b }6 Q8 |* t. ^, V( s& L: g' h7 v. ` e
};$ \% ~3 b) p# [+ Q5 T! n# Y
m' g7 ]1 [" n h1 [" K. ]
} //namespace QtConcurrent# k- ?. q* F; F s9 Y3 O6 \
+ X! Z8 A m' r# K1 x& l6 S T+ t#endif //qdoc! R9 ^: a$ v' d" H
+ [& I1 [ S; F! \. s; y6 b- o, x
QT_END_NAMESPACE
. v9 J. S8 B* L! T) m3 z( u( TQT_END_HEADER
2 w" Q! w2 }, W/ {' i" h# c
$ Z7 X" e6 [( d. V' v0 J#endif // QT_NO_CONCURRENT) ^2 r: u: H3 V: ? ~# N3 y) x2 T
! n- I: H- I( h1 ] V! s/ Z4 r
#endif* D0 S) i& A, m$ e7 r; p
: v9 ^* D' B4 y3 E: t: x
|
|