|
|
我对syslink进行交叉编译到arm,但是出现如下错误:/ \7 e) u6 F b1 z$ p4 _- V
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
- T% M1 w( r. Y, p6 ^; c2 X
! n/ F' g, B' \这个头文件内容如下:
3 s; |, {1 D% G. C#ifndef QTCONCURRENT_RUNBASE_H& t9 v" R- n1 M4 T" }6 z' z/ ~
#define QTCONCURRENT_RUNBASE_H
& A ]" p* |* d$ K9 }
1 p L; I: R. m& {, m/ w; l- d#include <QtCore/qglobal.h>
- B1 ~- i: H2 T
% z; \4 u8 H7 U#ifndef QT_NO_CONCURRENT
9 R2 l# p# [) }" e0 d0 l+ H( x+ b* ^& A& ]5 X8 l* v
#include <QtCore/qfuture.h>
% f' W1 q2 ^' M8 H7 T* v8 d0 Y#include <QtCore/qrunnable.h>
7 P+ m; h" r$ u' o#include <QtCore/qthreadpool.h>3 S; T( u- r; ?/ l0 S
. J' O9 x$ s7 T1 i( Y
QT_BEGIN_HEADER) \% e E! Q2 E7 b6 s! j8 b5 ^7 Z! d
QT_BEGIN_NAMESPACE
; X( h; \; d$ \+ v. I- d+ O2 O
6 Z7 }5 Z0 O& `7 G* J, c3 [% LQT_MODULE(Core)
6 i# j0 _$ z$ y$ s* H' c9 W9 C# J+ w2 q6 w( X, Q+ v: ?& D% f. j
#ifndef qdoc+ E& Z, [3 i2 Y* ~# I( s% |: n3 U
7 `& S8 F1 @; P* P1 ^" inamespace QtConcurrent {9 F( h' j# g) C
) K" f1 ]# ^: ^4 ?& x5 i
template <typename T>
2 c% T* |% g ~" m6 ^/ U6 Tstruct SelectSpecialization" O: a: J7 w5 ] G! N- @
{
7 }' K- Q* z( ~( d template <class Normal, class Void>
! E3 z9 n/ T6 f% g struct Type { typedef Normal type; };" t/ u* O( ]# `; L# }6 Z" a$ `
};: c" R& i) M+ X5 D$ H
4 M! a( j( o( V9 [7 k ]
template <>
& c- j/ l# i$ H5 w! E: }. gstruct SelectSpecialization<void>8 `. `4 }/ D! T! f/ V7 h
{6 F3 o9 J" d+ d! @6 [% v9 x2 I$ ]0 L5 v
template <class Normal, class Void>
3 E5 x5 z2 B! y: E struct Type { typedef Void type; };4 L' [& C6 \; a* n
};2 E1 z/ D& `! ]
! T/ w9 M* s; G, r* ~
template <typename T>
& W9 t; `; n3 g! O# \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable# Y% c( t* o+ o# ]7 A: e( s
{+ G& a: Y# Z$ ^! e: d
public:, Z" z1 R, Z' i2 L
QFuture<T> start()
3 t9 \+ Z6 O* m+ A3 v8 | {
1 ^/ k* b( K9 ? this->setRunnable(this);: T4 f' g0 ?+ I! V+ ^
this->reportStarted();
) p! B. A, s6 _; B) r QFuture<T> future = this->future();
1 R. E8 C4 W! o j QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
) R: L& q; G1 r) A" k return future;
+ T/ Y }2 Y0 r+ D# ]. z }7 M) l k; r- N9 S5 N/ e
5 h+ W/ b8 d6 _9 P( b4 p5 s6 d
void run() {}8 o5 W" C& o$ E4 x2 U. G
virtual void runFunctor() = 0;
" m; e# P4 V$ B* L};3 z6 F2 j i, p: c t+ i7 ~
' a2 y, E0 G& f/ ~$ m# Wtemplate <typename T>
5 v$ y& Q+ P0 |; g5 j3 yclass RunFunctionTask : public RunFunctionTaskBase<T>2 z/ W* l! I' E1 l1 B6 V% |7 k
{4 a. b( u& Q' u) ^. T8 u
public:
2 z9 I8 Y8 R. W8 d+ S void run()
! |; }7 N9 S: f+ i5 Y/ E! u5 S {
# Z9 y& K" U9 @* L# c h, D if (this->isCanceled()) {
" r; u, j$ K' q$ \ this->reportFinished();
2 G2 A+ U+ k2 ^' F! {3 f3 B return; D$ D0 B; A3 f/ G
}
- a/ i7 b- _) D- r this->runFunctor();
/ h( N/ d! r! _* o' b! r0 J/ B this->reportResult(result);
7 G0 U! I% \% z this->reportFinished();3 P% U. e/ ]1 a
}
& _8 M1 _ y& _3 }( a* K T result;% _' ?! i; G* B& ]6 q
};0 J0 M& J0 G8 U% L1 K9 H' N
1 u- z5 O: t1 U2 s) i+ K* B
template <>; \2 `! |$ T$ j. z J
class RunFunctionTask<void> : public RunFunctionTaskBase<void>8 c o: W1 ^' \9 U
{6 \5 A) Y/ ]) R8 w6 a7 _
public:: t9 k9 m5 Y# ~
void run()
& O% r8 X* `/ K* h% v, v7 J {( {/ l. J5 ^# N) Z, Q
if (this->isCanceled()) {& h) y' l" l x) x9 k4 b2 O( R j
this->reportFinished();8 A6 a# `& E, Z! G3 W
return;" ?% I$ @- k% ~) e6 w5 T x% W
}
! o9 Y- i' p; D: i0 z' U* T this->runFunctor();
$ e t( r' F/ P4 i' r% G this->reportFinished();
* v: x7 r3 c" Q8 a }
7 J7 P* H7 w+ P) y* }};
0 q `% ?6 ^/ X: G9 j
2 a0 k1 u( D& z$ i3 y} //namespace QtConcurrent
" y* b# u& r4 D
5 @2 P1 a- Q8 x5 f5 S' G" M#endif //qdoc
" r$ V) N8 O; w4 ~2 A% G' C1 S( i, T4 r+ Q9 q. N
QT_END_NAMESPACE
2 W% c* w- l/ ?& eQT_END_HEADER. Z9 f# V/ @7 {/ z3 s
# f% h* ]! I: k/ D# b% p9 e
#endif // QT_NO_CONCURRENT! ^4 @, d0 |6 T. P6 X( D: l6 A. i
, @$ I# W8 |5 C U#endif
; w5 o, |7 q7 ?* b: `4 q4 u! h, y% q$ k% x( c( L7 x a$ i
|
|