|
|
我对syslink进行交叉编译到arm,但是出现如下错误:8 H/ K. W# u7 {& q g- A
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- ^9 l; v K% Q, Q8 \
9 F4 R, O- g0 y9 m这个头文件内容如下:- G- r: o7 B( S" X. q) x
#ifndef QTCONCURRENT_RUNBASE_H
3 f/ F J+ x1 S9 O* l8 L- [3 k#define QTCONCURRENT_RUNBASE_H' P. \" E: N/ s4 W
4 z( U3 l- V* V+ g5 t' `& r#include <QtCore/qglobal.h>& j* T+ S a! p
$ g' S& `" ]* h4 f5 _$ ?#ifndef QT_NO_CONCURRENT8 w5 I) g4 y5 b l' E
; B: T" a1 t0 N6 M: c8 X# u#include <QtCore/qfuture.h>- v* u) P( {3 v7 }; ^6 T
#include <QtCore/qrunnable.h>
0 n- g2 ^, E3 _0 c$ V+ A- M J#include <QtCore/qthreadpool.h>
+ q7 c0 z$ q% d
1 F0 f- }8 {+ w- BQT_BEGIN_HEADER
! w) v$ a' a \8 ~: f) L, PQT_BEGIN_NAMESPACE4 K1 ~6 r* d- o; m0 b7 C
5 j4 L3 T6 t2 G) u x; }7 ]0 |6 A$ g4 R
QT_MODULE(Core)
, v- N$ D/ y% w% z% S5 W2 m% C" a' F( w4 l
#ifndef qdoc1 H; o1 E- t1 W. A/ X
% n1 H }& Q8 _' q; [$ enamespace QtConcurrent {+ o( k# U4 Z0 v; y# m( F ~
, O' J# ~" e/ C
template <typename T>$ |/ r- f9 x8 ]9 f' @ ~7 g
struct SelectSpecialization
! T$ O7 |, L. ?{
C$ p8 i6 i8 a" S) }0 @5 R template <class Normal, class Void>2 n& `% c4 C+ K9 L- F; U, _
struct Type { typedef Normal type; };
+ H$ D/ Z2 s- }6 D7 K: K};
- ~6 \# m' [! Y8 \3 w* |- d4 v& T8 Y- E, n( J; ]
template <>
% |! y3 K P5 d: M. ?- F: m! }( Q& w( Cstruct SelectSpecialization<void>
8 E) p( o1 h7 u5 [4 D1 `{
$ c$ ^: X; G: P. A+ f4 r2 D, J template <class Normal, class Void>
; t3 i1 V* @# P# v2 v& V2 }; c struct Type { typedef Void type; };. r- r. X4 y5 x: R( C% _
};0 i( I& t, ] [. J6 S8 ]9 ], R
& x) E& u2 I$ {: C; J
template <typename T>) p( x: f5 [2 M6 X; f
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- u/ }$ V, Y7 a z% K0 T( _/ |{
8 ?6 r$ f& k' j4 H3 S" Cpublic:
; O2 K8 X% z( M, T8 {$ T QFuture<T> start()
2 I9 {- Q" m k/ r {
" L- E4 D) k# y# A. Y9 y8 X this->setRunnable(this);
, }8 T" `3 u4 R: U3 @& N/ s- p this->reportStarted();3 }. N8 N9 C' s4 u" C, C& p
QFuture<T> future = this->future();4 ]. B1 V! W* f' u$ p
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 Z, P1 t; S3 T! N return future;
4 n, d# h# _6 A }) t) W- y/ v. c" O# C" x4 O( k
3 [, S# \. @1 X6 p void run() {}
) h5 q$ f9 ?; O& v5 A virtual void runFunctor() = 0;: O& j0 V, @& `( O7 m) {. X1 Q
};$ j) s& Z+ b" e! j- [0 x* w
' @) l+ W* c2 w0 ?9 R& p
template <typename T>
5 B( B5 D/ ^& X+ q/ aclass RunFunctionTask : public RunFunctionTaskBase<T>
7 D, H7 N0 u- l- Z5 @" {+ i{: B- Z' m) o* v# d" J
public:9 k, ?) _# ]+ D0 y2 z% y; V |$ i$ ]! I7 y
void run()
) @- G0 J9 I6 ~5 r4 _ X$ I, }- r: t {
/ u! t' W8 R0 i if (this->isCanceled()) {
# i/ ^( n1 h. h4 ]) A5 [- |# @ this->reportFinished();; t% Q' u; o6 O
return;
8 `" Y4 r! w6 S6 N }9 M; K# N3 z0 }# e. [4 b$ L# q6 ~
this->runFunctor();
" m" K% b5 L9 Q, ^2 N7 | this->reportResult(result);2 e. K& J* ]7 @6 A$ T
this->reportFinished();
& A8 h1 f. l9 C4 i5 h) Y }0 N! C/ @7 p7 l6 k
T result;7 a" t4 q4 e1 g& V+ B4 d. c6 T
};
( O* C8 ]' _9 e0 I4 T2 k0 B" e$ T) p# _+ ]; A/ v0 m6 }
template <>! r9 u0 x y; l! `7 o& h
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
" T' `. J) L6 F9 D( U8 |# a{- y* p$ \0 l8 s; e
public:
$ L! {; a8 X. z$ H% e) ]9 D void run()
! j1 d) r: T5 B, ]3 p {) y z( k3 p: f
if (this->isCanceled()) {
, ]* o, e+ x7 V& I1 r" F- e. i/ ` this->reportFinished();
5 ^$ y* \. Y+ n: E8 a2 A; k0 Q' T* y return;
5 u2 e' n7 l" ?% x L! f6 @ }' k: O0 _! f" P" E9 R" |6 p
this->runFunctor();1 f5 N9 _) D0 Y$ Q( v$ A2 u3 M
this->reportFinished();
Z3 L* d0 D' _+ d/ k: F9 K, s }
$ g+ }: z; e/ X' r};
3 H: o1 f: B) F4 Y. ^$ q i- C
% [1 O1 V' P7 c( L0 F/ E} //namespace QtConcurrent- O1 t8 L* O9 c5 z* l' m
. ?$ y0 Z Q" q/ m. ~. g( O
#endif //qdoc; |3 e% P c0 b& D* y% s
0 F% X3 O1 h; `; XQT_END_NAMESPACE3 Z: m V x7 W1 Q, D4 l! \
QT_END_HEADER
) G3 `' O6 F) g _+ P0 Z0 h; d& q1 x# ~0 G4 i
#endif // QT_NO_CONCURRENT) ~2 v0 C {4 ?) C9 w4 ?/ q! r* K
1 g x a5 ~4 e* e#endif
' P% f4 L: Q- |3 E8 P% w3 Z) Q m7 i
|
|