|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
5 {% ]7 ]. p4 {5 O+ l s/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 j5 C8 @0 n& ` z, R
' m3 V- l, a3 L. _) x+ K! v I
这个头文件内容如下:
: Q; k( i: z4 Y6 z' F#ifndef QTCONCURRENT_RUNBASE_H
, d; J( i3 K" `$ u#define QTCONCURRENT_RUNBASE_H4 C* T* a7 ~! `5 v' X1 @
8 ~: s) D2 U8 y& A' y( C! x4 v3 W#include <QtCore/qglobal.h>0 g+ T) y2 o: N$ T8 _
% @" L# c# q) N) j+ J5 W. K
#ifndef QT_NO_CONCURRENT2 j' g" D" S: O+ n0 s8 W" g
- ~3 E5 l7 _( l7 Z- g
#include <QtCore/qfuture.h>- ~! y o2 e0 Y! C. w; I
#include <QtCore/qrunnable.h>
# J7 f! e: Z( L2 A, ]7 l4 M7 y#include <QtCore/qthreadpool.h>
% J! z. \6 L$ h5 I5 a) _! a: w
6 D1 \6 B, M/ P7 N; [: NQT_BEGIN_HEADER
$ a7 Z9 `. V' t) B/ e0 _! X% HQT_BEGIN_NAMESPACE/ C, H- F) v- \( `7 j" N
3 X0 ^. w [. T- I% Q& `7 f
QT_MODULE(Core)
2 |/ }$ z9 R* O- q& S; q8 I6 C: R
#ifndef qdoc, D/ U1 O% [& B7 ~, L" U
; J! p! D+ g* \3 T3 W- bnamespace QtConcurrent {
5 u4 A; T, k# J$ S9 i3 r0 q- a
! |' s( q$ L; ?/ p! Ptemplate <typename T>
0 X6 l, _8 ]3 m; S8 f9 v2 V L7 K- Istruct SelectSpecialization
! o( y S* g' S; o9 C" }{% w% |! o- X) \1 f. [ W% X0 P
template <class Normal, class Void>
) D/ n1 Z# u" i4 k* h. a struct Type { typedef Normal type; };
& W. t2 _7 M. |7 J};3 X6 A: h1 [& s9 M/ |; ^
4 k/ F9 \. u) O! }
template <>6 ?$ ~! _9 v# i
struct SelectSpecialization<void>
8 P2 }1 X( M. \{) ^) I- v9 F/ V1 \6 j- r
template <class Normal, class Void>) [) z. z/ ^. V2 T
struct Type { typedef Void type; };% h% |) h$ y2 p/ {! r% [
};
/ f+ u. T v2 ~& L4 g( z& C" N, |" B" g @4 G m
template <typename T>
' P0 ]( i% y) S% qclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable2 j- ]' r, M n* B; b5 V
{& Y# T/ J3 q0 A% ]* V
public:7 V& E- k, j; c G8 S
QFuture<T> start()3 S( d% r1 J4 n& ]& W, M# X- r* G9 n( ^3 e
{: P/ g! S9 t7 y, m# Q: f& v
this->setRunnable(this);. W4 e. |. A2 |' y( u1 S5 `/ J
this->reportStarted(); M% U, R, i |
QFuture<T> future = this->future();6 Q% }+ X) G X' ?1 Z, f" r3 n" W
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
- r8 E3 t0 o8 B9 {" L2 \4 {" V6 K( C return future;) Z) p P& l Q6 B+ g6 \" d( @
}. [/ d, s4 R5 p. x
" c2 K& T& S* F3 @
void run() {}
3 g( a6 Q5 W$ p( a8 b' w2 M7 h# e virtual void runFunctor() = 0;. f3 m7 _9 X' T7 \
};3 S g* c* C0 K( |( X
0 u: \% t2 c- Z$ H* i
template <typename T>7 V( X7 p0 \# I+ [& `
class RunFunctionTask : public RunFunctionTaskBase<T>+ A% H4 ^( |8 Q3 i; O
{
$ ]6 k/ @$ Z* e4 wpublic:
6 [" W+ A* i5 v void run(), M/ G; _: W& {
{
3 F7 x: A6 A H( M if (this->isCanceled()) {
1 H" ?: i8 d& e' P" f% [ this->reportFinished(); d9 {9 @' `, i \' g
return;- ~: ^8 ]3 _2 E# v
}/ {3 z6 \7 C" S
this->runFunctor();9 x7 C5 V3 _5 @4 [' u
this->reportResult(result);. @) [" B" t- |5 c" v3 B2 e: G/ s: [0 _
this->reportFinished();/ _. o! [0 q8 o' [) E
}
6 O6 s/ k+ g( ~ T result;+ R3 A7 t- f" r: Q+ t# h; j
};( E/ }5 \7 {: S- Z, ^' u5 O
2 k: t8 p6 Z% e2 `/ t) {0 F
template <>
' W! }1 Z* ~% G$ m6 Uclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ v% K! K' l$ Y- l$ Q, y: k! i{. t9 e6 ~' l' c& P& t3 S
public:# Z) k( t; P3 U# v7 F
void run()% r. X) [2 a+ R
{
, F! W# N) o& w9 \$ i if (this->isCanceled()) {
3 R0 E. f7 p+ x6 U4 ] this->reportFinished();3 ]! J1 h5 B9 _ N& u# w
return;
: c7 x H6 \ P' M }
+ y' c$ K! E6 X% C this->runFunctor();" a7 r# f, r% ?. N
this->reportFinished();5 k3 y2 k: G* @8 L( j
}! |' A2 c% q0 B' z8 y9 ], h! f. d
};$ j# w* Q+ t0 X4 }% e' T
: Q4 j3 p! S" m% X# j5 E+ H} //namespace QtConcurrent
7 ^: v2 P" S3 u8 ]( S! F2 I) Q7 J& ]' d2 s# s+ A
#endif //qdoc @! w9 ^# L5 Q$ k0 N
; e0 Q+ g4 ?0 s% G- P# w
QT_END_NAMESPACE
6 j. I: _1 Y$ gQT_END_HEADER
: B( q" {; `/ N H
& Z* T( @0 Z4 l#endif // QT_NO_CONCURRENT
4 N3 U% [ S5 w9 r- }
- v+ I' \6 O/ i0 k' v# N) V#endif
$ c, X) b$ C4 `: T3 \- q
8 c. _0 z' ~" ~1 @$ e1 K3 l |
|