|
|
我对syslink进行交叉编译到arm,但是出现如下错误:: ^& b0 x8 C g( [2 h
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
8 C5 j5 D& j$ ~5 W, Q
# L2 Z. f& I. |2 V这个头文件内容如下:
w/ z1 r5 o; u. m: o5 W#ifndef QTCONCURRENT_RUNBASE_H
" R- P. b {2 H7 q! V/ l& {* ? E#define QTCONCURRENT_RUNBASE_H6 H" ^6 {! g6 q2 U, d) M6 u9 @& Z- A
8 D* I; M' B' F1 T" C
#include <QtCore/qglobal.h>, w2 S/ P" X2 Q1 c1 I: m
0 y" n* K( J# @/ Q6 J#ifndef QT_NO_CONCURRENT; z- e& \) h7 `$ {3 n: o
( T6 f |5 ]! B% N! P
#include <QtCore/qfuture.h>
6 m t4 H5 E* c+ r/ B! g# D8 c#include <QtCore/qrunnable.h>
' t1 p) i- A$ d5 W f: [# r#include <QtCore/qthreadpool.h>3 H! {* X/ k8 j, m
/ s% r' M- {! s( f# l$ b: G$ r/ H) jQT_BEGIN_HEADER
: x7 w9 u1 z7 Q/ v f5 q7 v0 n: zQT_BEGIN_NAMESPACE
# E7 d* _" @1 ] S1 s$ e p* Z7 E/ `: z$ J* K; U
QT_MODULE(Core)! u) O$ I' v" `# z6 o
$ N; V8 V1 s7 ~! s, @6 X
#ifndef qdoc
- D3 @, V$ _3 y- S2 c5 z6 ^7 c
- T" }* E9 T9 W5 D( l3 {namespace QtConcurrent {
u2 E( I% s, _2 Q. t+ [) T2 H) |7 |. {+ F
template <typename T>
" ~9 C8 f9 x* V' g2 J3 p% wstruct SelectSpecialization
u8 j5 A* y( Z{3 u ?/ x# t$ f) e4 y* d6 z: \6 ~) E* y
template <class Normal, class Void>
/ M; c& p# r$ J0 y: e; I( i6 E struct Type { typedef Normal type; };
( c" X9 M' a3 w};
4 P6 F+ h8 O& x5 I9 Z; ]! }# _# {6 r( w' t, z' ]
template <>
- D; b" e5 j: P( h% Z0 @4 Rstruct SelectSpecialization<void>
9 [, x% V4 J, {! q{
' g' W& W0 I8 w1 m) v template <class Normal, class Void>
# w* P% _1 @* h- u/ q h struct Type { typedef Void type; };* Z2 \& @6 u2 {9 Y7 t4 n- v4 }
};
$ y7 u* j! w0 L' ^ O9 w
4 E0 n; p; {: }- Stemplate <typename T>5 T5 p' u$ h3 z5 |* S5 L1 ~# g
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable: F ~$ Q) t) i0 c2 j+ Y' G% d
{* U, u- G# h6 \. ~. b
public:
c% V5 Q" l7 M5 I7 ]5 ? QFuture<T> start()$ W8 y- A$ F0 D& T0 b
{
1 ]! r& R, F }% ~' } this->setRunnable(this);% p* _+ o: w0 w6 V: a6 b7 Y6 g/ H
this->reportStarted();
6 }$ [ r- A/ w. D& ]" | QFuture<T> future = this->future();
5 P% ?& q) g* ^/ a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
- k5 q4 E7 c/ G: B return future;
& l% h+ w2 _' b7 T# K+ @# F }, B2 R) v) p. `8 n) j A ~
: j! B1 r, N1 G# Q$ m
void run() {}
3 O1 D$ W7 ~+ M; Q. [8 R, e3 f m virtual void runFunctor() = 0;
, Q- D* L- l1 c5 l' P7 E. z};$ q6 }" `! b0 O& _+ D6 S
( u6 c% t# y* @+ U
template <typename T> H8 {0 ]$ t/ F- X' |
class RunFunctionTask : public RunFunctionTaskBase<T>! p' a2 M7 k: s0 x
{" L+ [$ l7 e/ ?, m& M; K
public:
) Q, }( y4 m8 G+ q6 z+ l/ w7 [ void run()4 o& d3 \' F7 F, Q
{
8 T" s9 `$ Z# ^% `" c8 V4 j$ { if (this->isCanceled()) {, d& s+ j4 a9 Z; Z4 j5 V
this->reportFinished();
. H) `4 L$ L. M1 `, X0 o return;
, U& B0 V# B# d* U% h; f# m }5 l; a# ^6 s3 v' o3 O7 H8 F
this->runFunctor();
* q. l2 q; Y! H1 M$ S2 u this->reportResult(result);
% H4 |; o/ z [( o- a this->reportFinished();( C1 [5 q, p; u
}
5 m/ J( Q) z8 \/ O7 G- ] T result;8 u; w- a v) F. A! @( x
};# A! j4 o7 f3 C- g- k' B
( k0 y; S1 M0 {7 {template <>! r$ G: y) G$ k0 J3 X/ m( V, U4 f
class RunFunctionTask<void> : public RunFunctionTaskBase<void>; o8 ~9 f8 F% u' \
{
! `; |+ D$ G. {6 b% [( Vpublic:0 U9 y* @$ S4 y! P& `% F7 g$ ]
void run()
' |" b* k+ ~8 `! h4 U {- F* ~/ M# T0 i7 t4 L
if (this->isCanceled()) {
. c/ M! G5 s: }8 {) V& l& N# y this->reportFinished();
) O f( W( S' _1 E return;- l0 T/ p7 ` \8 s' b2 [
}8 @4 P }) b1 c8 `- U
this->runFunctor();9 o2 @' z% C5 O4 z& W
this->reportFinished();0 P9 ^" u" ?. H( g4 U
}
7 u- P$ ]0 }9 V- u P};
. G6 l! ~% I7 p: _; F( b8 X: g) L: @
} //namespace QtConcurrent" }4 N; `9 u0 t1 A
8 J$ n0 x/ w6 |% |) }- m7 z#endif //qdoc! H( J# G! ?$ Y- ]
0 s, |$ J' M# Q' u) T. y
QT_END_NAMESPACE, P$ n4 r5 K& Y- y
QT_END_HEADER7 R8 b2 \- Y, S" E4 ^9 W0 e
$ m6 c& `5 U/ H8 a* a) z+ D( @5 n#endif // QT_NO_CONCURRENT% Z @+ t! c# j/ g
& l5 i# x E. X
#endif' Q; a, ^5 t B/ D* M7 A2 ]
1 @) D; V, l( A1 a6 ]5 A4 Y7 \
|
|