|
|
我对syslink进行交叉编译到arm,但是出现如下错误: W! l0 Q, y" {9 t, l2 @7 N# C
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'7 ^% l7 Z; N7 P6 \9 Q
7 k M5 Q& P4 ?" Y) D- f这个头文件内容如下:1 a& d, E2 Y: L. m. e7 l; s; f0 e
#ifndef QTCONCURRENT_RUNBASE_H7 M1 W) y7 r% y1 W/ w
#define QTCONCURRENT_RUNBASE_H9 u$ V/ j5 z$ x& e9 B$ F% J
" y+ m# T; p" t/ p
#include <QtCore/qglobal.h>/ F5 x# G. s- l( V$ }$ ]' ?
8 d1 S. H0 _, |/ a6 Y$ y
#ifndef QT_NO_CONCURRENT: c# ~* R" w2 e4 u4 l" A, ]9 T; |
, ?- X7 n& s3 v6 _" t- K; U1 T
#include <QtCore/qfuture.h>+ X* ?5 f- t, D. C: `; A! r+ r+ u
#include <QtCore/qrunnable.h>2 U* i c5 |( S0 a
#include <QtCore/qthreadpool.h>$ k6 P" y* \# R& b
" q. i/ c: d; V3 s
QT_BEGIN_HEADER, D6 s) D Z8 F3 h3 _8 F6 N
QT_BEGIN_NAMESPACE U. {& ~8 p1 M9 u
9 m" F/ T1 D. A+ g9 ^
QT_MODULE(Core)
8 ?2 A m3 Z3 U! e v6 J# Z6 R- V5 ]
#ifndef qdoc8 q# Q! m7 S9 y- H8 i
2 p' f f' w1 w4 m3 m5 x& ?0 g4 `namespace QtConcurrent {7 C0 e3 V& @' e
0 Y% E+ H0 f7 C3 v/ Btemplate <typename T>! G' }- E$ j- n8 ~9 u' g4 I1 w
struct SelectSpecialization
2 [# |- ^6 G* P, g! Y3 K5 B{
' b1 @. G! v) J template <class Normal, class Void>$ ?" j1 _7 x- H0 u3 O7 j$ o, `" l
struct Type { typedef Normal type; };
5 h- h5 r+ r7 P};1 G r0 L# J$ F) I8 t
7 z% `3 Z- k2 H) K0 A2 |, Q8 Xtemplate <>
) r6 }; I8 h. x' a2 {struct SelectSpecialization<void>1 ^/ B" u% N$ \
{: q$ h& T8 i: T& Z/ g$ u, X
template <class Normal, class Void>
( g/ ~9 O8 ?& e n2 k& Y1 j struct Type { typedef Void type; };$ B) v$ S7 U, |) f$ K
};: O/ @: ~: c9 N8 v Q- S
6 L" Y6 J$ u4 T Q$ g) _1 d) itemplate <typename T>7 J# M8 V5 M5 p# m( J8 u) p
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ y. J1 @1 H3 H( I. E{
* m6 C* s( I( r/ wpublic:
# D& H2 s2 n, J$ f QFuture<T> start()
1 Q% x2 V& `, I {
. N w! @# g1 f/ G this->setRunnable(this);
! G9 u: T- t# k. H7 G this->reportStarted();8 B, I! M+ X- B% M! o2 h# @
QFuture<T> future = this->future();" u, _( C& a) F" a' k7 o
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) W; H7 M& y9 z9 z6 M
return future;
1 a% z9 G3 J/ l' z/ Y }
, l# U/ v; p8 @/ p- L! h0 @( a4 t- t4 y0 `
void run() {}
) `0 K- _* ~, ~: f& X+ A virtual void runFunctor() = 0;
" V. Z, O6 L" w3 c};
; F9 a, P, |. s5 o; V: L- X1 g4 x% x7 P& x+ \! o& F
template <typename T>
* v6 A( _& m2 K# C" Kclass RunFunctionTask : public RunFunctionTaskBase<T>
) o# j( r9 x7 U0 E{ T- P* E! m& p# m9 D4 a
public:' L9 X0 e c) N; V- V
void run()
- m# V; P# p9 ^: H {' o! X6 M& d" P: v' ]
if (this->isCanceled()) {
+ U( F" J/ J) i$ z this->reportFinished();
+ _! @5 Z E, j; s: l return;
/ r. {' Y' A( s% D" j3 k }
8 N: k+ [# N8 i: z8 ^8 y; Y this->runFunctor();
0 G$ j) \; n: ~2 z this->reportResult(result);
* P+ ?1 O0 |; ]: R# a. `# z/ F5 J1 { this->reportFinished();" K- Q. C9 C$ {* b7 X, @
}: {8 e# D I: \9 B! ]
T result;
1 q- ^# Z+ }; ^! C' _8 m2 y! d};
1 Q! ?! E* o. S q& N1 l0 w
' H/ g; a: h; }! w$ h) S" _template <>- l3 y7 z' F) i; E$ m: \
class RunFunctionTask<void> : public RunFunctionTaskBase<void>$ K1 U' o' t2 z; _0 r; n
{/ U7 f4 z4 E# ^9 K7 L9 [" z
public:
, d! `/ o( n, m% n1 Q1 N void run()3 |: o4 K! `0 R/ v- _# Z
{
2 _7 X1 w( i" B) D$ p0 ]1 U if (this->isCanceled()) {
3 e6 P' n9 D. M6 A3 ? this->reportFinished();
$ E$ `5 L/ c6 e1 V8 k return;
3 a8 u; f* A, C. @1 |/ V }" R: d% U+ S3 c. g/ K. X
this->runFunctor();
" p0 f, J, {6 Y4 U9 { this->reportFinished();9 J$ p4 n. R$ G( h6 n9 l: ^* N
}, T' h& n) r+ [/ u! b( ?
};5 Q+ \+ n# a7 Z3 |% V
& ]7 g3 e5 Y. ]
} //namespace QtConcurrent3 n: a/ d( h2 |- w4 _9 O3 @
- h; S+ b- P3 x+ E# V
#endif //qdoc6 S& c7 n! D0 k: |
. T9 T0 u/ {8 q$ b
QT_END_NAMESPACE
( ?4 L7 h3 p( \' W& D |5 q( oQT_END_HEADER- a( g& d+ X8 U z5 i7 t8 p
/ P$ P- `3 o3 Y/ D6 C$ R/ H- o4 T#endif // QT_NO_CONCURRENT" c5 z6 u% }# m8 Q' G0 [
1 \( a- `& `+ T8 I9 k1 P; Z2 v* ?; ~#endif
$ {5 D' c( t3 g8 F: y
3 ~' A) P5 b1 Z; t# J |
|