|
|
我对syslink进行交叉编译到arm,但是出现如下错误:& O1 j) F3 H' `' x0 J
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
5 ]: Y) E. A! j; x
7 {# v+ V! N+ ~/ P J) K这个头文件内容如下:; x/ u$ Z* h1 l- F, f
#ifndef QTCONCURRENT_RUNBASE_H4 K# i8 ?7 F6 M6 T1 R
#define QTCONCURRENT_RUNBASE_H
3 S( _ e( h. X5 q
8 B6 S/ y! o7 m7 g& h#include <QtCore/qglobal.h>
1 K5 v, Y6 \' K# Y/ ^0 V2 V, z% J2 z4 t4 c C
#ifndef QT_NO_CONCURRENT: B* a. {& I9 w( M2 e
! j4 J) l9 j! f6 u5 @) d7 i: \( S#include <QtCore/qfuture.h>7 V/ m- u6 X X+ l& u" v7 [
#include <QtCore/qrunnable.h>
6 d3 X( x& v* P8 y7 f#include <QtCore/qthreadpool.h>
# _5 w" g; ]9 ?! |
/ T5 c$ ?- y+ S9 KQT_BEGIN_HEADER
# I1 C$ z; F( o% f' {QT_BEGIN_NAMESPACE1 X( s2 K+ a$ G( d
) x/ Z, r- P3 \0 m# B0 ]+ N: d, n
QT_MODULE(Core)1 r9 T. q" H/ O' ^8 h, V4 M
* h; G" n l8 Z( t
#ifndef qdoc
m D {/ g( ~' J9 S9 g
4 c% t9 K- f8 j1 ?+ snamespace QtConcurrent {
4 h4 p* s$ x& i6 ]# {2 t2 n' O( f
" |$ m3 A+ A) ~- J' D2 Q; \template <typename T>
" P5 C: C; s L) Ustruct SelectSpecialization- V+ E) L; a- i. {( y/ |
{
# ~, y+ Z: i! `: e, S template <class Normal, class Void>/ X4 ^' G& K8 ?, b1 \( z/ V
struct Type { typedef Normal type; };
( K2 n' Z5 y; D7 r& B& O};
v- a1 K5 y7 ]$ L& ^& Q5 i1 p, l, z* S6 M' `: a8 C2 z- {
template <>2 y4 u; B5 x; R1 t* Q* C
struct SelectSpecialization<void>: v& \4 {' h8 T
{" p' o6 _: m6 F6 m1 R, }$ f
template <class Normal, class Void>. M/ \ z0 r0 g+ F- @2 C9 ^6 R
struct Type { typedef Void type; };( e |: \ r; h' H0 K2 z+ n
};
3 a4 A% U3 \" l1 B4 L6 W( J
1 B: K: x) e) \( k& stemplate <typename T>
% B3 W' Q- J& d$ Z/ Oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! _; |+ H9 T5 a" H9 Y* d{
. \' r- I2 d# r8 q% b' b( Ypublic:
1 h& v& e# r j. p: S QFuture<T> start()+ L% E9 y0 T( U) B ~2 C9 k* b9 V
{
. y9 E9 ]) b: N" M. P7 d+ w this->setRunnable(this);
6 v1 f, m- ~- H, M4 j4 P this->reportStarted();0 ?" _& T! T. w' X6 \1 T! s/ z
QFuture<T> future = this->future();, I7 P) O0 a- q& f$ }
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);/ ?! \- r. Q1 j2 S8 Q# p
return future;" E# i2 s4 A2 U
}
1 L* A6 ^2 U! g% ~
9 w2 q# ]+ d# R3 J! ] void run() {}2 C) t; w5 b: S# o" _) S
virtual void runFunctor() = 0;
, g& Z x! n; b; z D( n8 X/ C, @2 H};
% O( ~' _2 U3 A; T+ X& ?- O7 n8 v# A. L8 j7 _0 @5 o
template <typename T>
5 t0 P/ p9 A( m/ @class RunFunctionTask : public RunFunctionTaskBase<T>$ P6 p, M- p) x
{) |# u* r$ k& c" z6 k
public:( ?. H3 E5 W( j* d) q% b/ m0 t* j
void run()8 c4 v6 g" C$ d: i% ~' d* [
{
7 S* ]0 X$ C1 W1 V1 J1 o5 p: s if (this->isCanceled()) {* c) o, }5 z i$ P; ]# X @
this->reportFinished();0 O# _1 u5 {7 j# O& X
return;
2 I* P. W1 i) ^% |) w$ h }' O5 c/ @4 }+ L& J& F" X3 H
this->runFunctor();
6 O; l$ X$ e* w+ b' X this->reportResult(result); h' }1 i- `' h5 A! v7 ]7 G: f
this->reportFinished();
# y( Z( ]- w9 d: E# o% x8 `* N }
/ o, [1 A9 A+ Q$ ~" J' X T result;$ n8 T3 F8 ?, D8 p1 O3 F( ?8 y
};9 C* _7 t N8 z1 [ m: r, B# }
/ k3 R; j6 q. {
template <>- M9 n3 @: R9 X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
! |# O6 g4 w f$ f( U V) f{. d8 \( ]: Z) P) N' W
public:
) q6 _$ ?# Q2 \1 [ void run()
b# w& {1 [$ j$ m { x; ~, c- y7 C
if (this->isCanceled()) {
2 _7 M- A) b2 q0 K! V2 B this->reportFinished();
0 ?7 E+ a0 \8 b! I return;! o- H: b t" b N9 v
}
, Q; A' }& B' u4 f4 Z! n! U this->runFunctor();" n ]" N- w# P
this->reportFinished();! g% \/ t; G# m9 ^
}, [0 y5 [2 l4 L) O
};
# \6 t! j5 @' ^) z% i- @
, ^. \1 V8 T9 N/ L' ?- W} //namespace QtConcurrent
6 j, r4 y3 ~2 ?* |# Q( s
/ }2 o2 f$ N1 w+ t#endif //qdoc+ R. c0 e$ \& s+ H) a
% V2 |2 X3 W* @/ uQT_END_NAMESPACE3 o/ l! `+ ^8 o$ ?9 l
QT_END_HEADER8 A( l' V* B) @! X+ t
: w% F) E; f( x7 d5 C( ?1 ^
#endif // QT_NO_CONCURRENT
7 L4 n9 |9 o( C
1 W3 F5 x+ Z: s. r#endif
( U8 [ Q+ x. o3 _. g9 n6 ]7 [* C! W0 P# M/ A# E
|
|