|
|
我对syslink进行交叉编译到arm,但是出现如下错误:& H9 q( Z |7 v- t
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% n# e) [" S" A$ o$ m4 | S3 V9 S
这个头文件内容如下:
- g1 r0 J+ r4 |#ifndef QTCONCURRENT_RUNBASE_H" r& f$ T8 P' N8 B) h! H) K3 W& Q
#define QTCONCURRENT_RUNBASE_H
. T$ B: W7 [- w# u2 o6 V* p2 l
' C6 L* y g8 ^: b/ q#include <QtCore/qglobal.h>" i' p# W3 R: n0 R4 P& _! N+ x" [2 V, _
: x: P" X! L" A# A$ E$ y#ifndef QT_NO_CONCURRENT
- \# u. l. a* K3 f. Q4 r7 ~
& I$ J4 v( X1 M: Z# w#include <QtCore/qfuture.h>! O: O& u+ j) [3 s. m* j s
#include <QtCore/qrunnable.h>: k, P2 s7 |# t! o; w' U9 s
#include <QtCore/qthreadpool.h>' q; D, E, g1 G! c
$ m* d# i* o$ O( ^
QT_BEGIN_HEADER
* P1 T Q* P5 D j8 fQT_BEGIN_NAMESPACE4 a: s% N, I) h: ?2 h2 q
5 B+ m8 W9 k, V9 W8 r9 X
QT_MODULE(Core)
" n3 b( b) F# @. |4 W; y! ]" b$ K/ \8 G1 @
#ifndef qdoc
6 x' ~, `% M) z; S
1 u( K E# a; k8 znamespace QtConcurrent {
5 Q8 t, g; m: ]# ]8 l
4 L( O7 N8 f) o& ^template <typename T>7 e0 b8 F* G* a. o: q
struct SelectSpecialization9 x% c/ O! R9 [5 Y* s0 f
{
/ h+ R. Y4 [' ?$ B! Q: q template <class Normal, class Void>% c& d* D9 ~6 v( z
struct Type { typedef Normal type; };$ _6 T6 L6 `" T
};5 K# t4 ~- ^7 e
' _1 S/ ]( n, htemplate <>" B- T6 r/ s- P" }, Z4 P
struct SelectSpecialization<void>
4 v4 |( }& U/ K- a; M2 }' R1 X{$ c, n+ f" w3 z1 D0 T9 [
template <class Normal, class Void>
' g, s. v9 O6 U9 ?0 _& w% z struct Type { typedef Void type; };
- t5 j8 L; n: l3 j6 t/ |/ j};$ L* \- \6 i& x9 t5 b2 s+ d
, E! t2 F! i4 D, B etemplate <typename T>4 \& y) r( K* W% ]# t- T+ N% e- W
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable& W! u, X# I: Q# f+ p# g
{
, g q( h3 A) Y- ?% ~public:9 y: n' L1 J0 P* n8 c
QFuture<T> start()! }7 M' z" V% v
{0 h. Q/ y, @ P
this->setRunnable(this);
/ j+ x2 s7 U) w+ h5 D this->reportStarted();
+ \: q' r$ @6 |# q( o, N QFuture<T> future = this->future();
( |+ X9 _7 D/ }& y Y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
8 A6 C" q% W4 U; R2 D2 }0 n' r return future;& b9 f% T8 A2 {' y+ ?
}. ^9 c* d$ P' h9 J: x
" C! `1 A# P. j9 X+ j! l' D
void run() {}4 s- [5 j( q$ t: v
virtual void runFunctor() = 0;# t* F# h1 Y3 }2 M3 c$ Q
};
8 ?- ~; |# X* m/ @
; a: y1 |& x0 }! _( ctemplate <typename T>
/ z& H' S& G' h' `/ nclass RunFunctionTask : public RunFunctionTaskBase<T>
: j8 T, \5 D* i5 b4 K' T- b5 |{
; {& o/ N2 B; F; d4 }' U' wpublic:5 A& ? ^: M% c8 k& c
void run()% N9 k0 d: L0 X. b: _
{
# U, P1 g* C+ F# J+ a m+ w if (this->isCanceled()) {
) Q$ \' y: L- |* R3 J/ ] this->reportFinished();
" o# i) g6 @& g: v; | return;. `" k9 U: |5 v5 N. A0 {
}4 P6 M' Z: t+ f7 k3 J) O$ B0 ~+ ?% w
this->runFunctor();) @. x9 x# p& o/ F" @$ K/ t
this->reportResult(result);
8 M6 d2 t! T7 z this->reportFinished();# ^! _! q! ?6 M" _2 W" b! I4 Y
}1 \& E8 G2 ~3 E1 b
T result;9 \2 F2 E2 f, E8 z# V
}; V% Y& U. }( }! a( W/ e' P( Q: G! u+ \
( f# h& V3 u. S8 stemplate <>9 J1 j# o0 ]( V" a1 x. _$ M- t
class RunFunctionTask<void> : public RunFunctionTaskBase<void>0 j" I% Q4 P' V1 l- S5 }
{* O5 F( f u, h8 h1 B5 w* i
public:
6 G# r- r% L* |3 q void run()9 k$ g1 b" k7 e' ]+ {' {- n$ d, z
{2 y. {% H! m; X- }3 D! `
if (this->isCanceled()) {3 ?% ^1 b: f) @6 D$ S
this->reportFinished();9 Z0 B. T- |5 D1 u' Z4 f( z* q
return;: |8 E+ O8 V2 i1 A
}
5 F X9 {" c0 _9 R this->runFunctor();1 i9 ?! q7 V4 g4 Z+ {- ]
this->reportFinished();
6 {3 h( k: w- g+ J5 m1 I }
" y2 w+ y+ T! P4 v7 B; r0 n};) [- L8 n2 J. Z: U. M% @
, L: X+ X, G$ Y6 w} //namespace QtConcurrent5 _4 g5 b* p' ?6 M4 \' h
& |2 E1 ~1 e9 A& Y+ b2 H w7 U#endif //qdoc/ u7 M' O( N4 |! m9 ~) _
- {" h5 K( a0 E4 N& y* }
QT_END_NAMESPACE
5 Y( w& z4 U4 N, Q3 ~6 q CQT_END_HEADER$ M4 u6 M! [+ ~3 ?
3 |1 R) |* o" d: X: s& m" @
#endif // QT_NO_CONCURRENT1 b" R7 j5 L6 U: X
1 s! ~; O5 Z9 d. c+ b& T2 n- p) `6 d
#endif9 K1 y) a* `! y( S4 h$ b
7 M$ I& @& p h( G* B |
|