|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 H9 w& E) h$ }8 H. u3 Y/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
V7 e; O0 L% L" A( ^1 [$ P" _0 L: X" E
这个头文件内容如下:
. e. n7 j( b! W# x" y9 l4 b#ifndef QTCONCURRENT_RUNBASE_H
5 I- b. t. _) t. L# }#define QTCONCURRENT_RUNBASE_H
: t9 x7 H7 v3 \9 }* O
/ a1 f6 j! i- f$ {3 g. |#include <QtCore/qglobal.h>
6 Y1 ?3 B9 I- Z7 E/ K1 k* D& |: A `: [
#ifndef QT_NO_CONCURRENT
3 @/ P, A4 l! h( M
3 `, Y, z6 w. k$ K0 _6 d* K#include <QtCore/qfuture.h>
) c8 u5 P- d7 @9 ^#include <QtCore/qrunnable.h>4 n( u8 B1 V$ B) S9 E
#include <QtCore/qthreadpool.h>. ?- b8 @, K- u+ q* z7 c/ O Z
* x3 t- o* M2 ?4 |2 F. p6 e
QT_BEGIN_HEADER
( ^5 N; a8 S) G- o# j$ ]0 x, _QT_BEGIN_NAMESPACE& t/ {) o C. A
% @: J6 d C! m, H4 Q4 N
QT_MODULE(Core)
: e# X6 W; c( K( N4 l
- Y2 G4 o% C9 r/ k4 r- y+ h#ifndef qdoc
, c. X( Z# ~8 q5 }/ r2 ~
2 b6 c/ K* o0 w; \, N5 g& [namespace QtConcurrent {, |- v/ Q0 ?4 ]. i9 F& |4 J
( k8 C' f4 L0 V* E: i
template <typename T>
2 p* p; E6 ]4 E+ Ystruct SelectSpecialization% v" a9 p$ k. f' r3 I3 W
{5 v. Z- k/ k0 R( i: s* l
template <class Normal, class Void>
! o+ u; i8 H; `# s! U struct Type { typedef Normal type; };* m# u7 z U5 Z2 c- I, d
};+ f# |6 a# t% G2 \, _) O
8 I, K z. m5 O# d/ v6 D- itemplate <>. F/ u- s% e1 ]& O
struct SelectSpecialization<void>
) P ]# p) F* V i Z0 X{0 w0 b7 i+ ~! O8 F/ e
template <class Normal, class Void>3 A' Y5 [. ]' A0 C, ]7 h2 b4 B& | g
struct Type { typedef Void type; };$ z3 Q! W, C9 c3 v4 U1 q
};% l9 y* f3 T. b5 h3 @$ o2 G
, a8 D9 c1 u* H, n+ o. e0 z
template <typename T>% Q, V7 x, Z, Y" M
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 E3 m: c$ \$ X! F* ~( ?8 P, G4 P{
% l- U t+ P# i. upublic:
" O5 b" v# D4 x q! ^5 Z9 O QFuture<T> start()( L& @+ z6 v4 O4 w; B2 `/ v
{ n1 _. H. G: ~( r* B6 \5 |
this->setRunnable(this);
, s" |# X' r8 \- Z4 ` this->reportStarted();; U" {' ` }6 R4 l
QFuture<T> future = this->future();
$ C: g1 l2 S6 h5 A# v QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, \; X7 i, u7 P L( a+ g5 H return future;, w0 P9 l0 r% W6 r
}
m8 C) U$ }! A1 D
: Y3 J9 A$ X$ c6 g# a$ m void run() {}6 V% N4 ?) u* j
virtual void runFunctor() = 0;- S `/ c" c/ }
};
& G2 b$ P! j3 G _1 }
1 T: _8 u8 ]+ E+ Y M9 btemplate <typename T>
1 Z, s9 O% t# @7 J% b% B+ Mclass RunFunctionTask : public RunFunctionTaskBase<T>
$ m9 A: F5 v) |, O' ]) u" U{5 R3 O% P. `- n# r6 F
public:
: f; E0 ~$ M, | t, ?8 e( X; b- h* h& a void run()( w; `* T" @* P) v2 g
{
: ]6 B( A/ u. T$ O if (this->isCanceled()) {
3 i" U9 i! l! W- f3 Y this->reportFinished();- e5 g6 t0 y( ^- I
return;
' |; c, w z8 V/ C+ M/ r% l! x. q }
" B+ M8 E7 c' u) j# y this->runFunctor();
! n- U' F6 T1 X# r" U, u this->reportResult(result);
* u0 X0 ]5 T5 I. u2 p6 B this->reportFinished();# R/ S0 q$ ?0 Z' q8 e
}
/ i, ~$ A& ]9 g3 _( ~' b5 M! R T result;
{: l* d# _- Y9 L( A' y};
& \7 m; f; @: H) L3 y. @! x$ e) d" ]- O
template <>! ]+ I$ A7 j; G
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ J& z* a" o% o& z. g" U{ C) @. S0 l* ^/ I
public:
. \" ?* ~% G$ v5 Y void run(). I, k3 e7 D s! U r0 _
{# w7 ~: e0 I1 D0 a+ }
if (this->isCanceled()) {2 f: r& G/ A) E( `( w
this->reportFinished();9 o' b" R* |3 ~ e# Y
return;
' |4 w% @/ l9 N S2 @0 ]* w- P }$ M5 c$ X2 `6 D( p8 i/ ~
this->runFunctor();0 Y# _# n/ ~, Y$ Z7 o
this->reportFinished();# f$ J( G. w0 d
}8 r8 a3 s9 _, W5 v' z, W+ A
};
4 I9 D. x2 z9 ?# \# j, a7 J5 E% G$ ^, ~! c' V+ u' J
} //namespace QtConcurrent, G: j+ z& k* ^1 _* K! w8 W- z
: u& M$ ^" n z( j* q) R( {3 a#endif //qdoc
/ v9 s, _/ N) \; y/ @* M [8 ?. U
QT_END_NAMESPACE" X' s2 y" x2 U2 @1 p
QT_END_HEADER2 I. U1 X/ Z- v3 S- N5 y$ p, T
0 n) l6 x( x- G8 s#endif // QT_NO_CONCURRENT: Z0 Y- n |5 o/ G1 G
8 G ?8 }- b- c1 O#endif
0 L( w: c" E/ `3 R1 O
% b2 B# R* x3 _& K6 e |
|