|
|
我对syslink进行交叉编译到arm,但是出现如下错误:: i' Q, B4 h4 \3 t4 d, J P. ^
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% ~) @$ Z. s- r2 i
* }; S# U8 t) D% p1 n3 w1 |5 g) k这个头文件内容如下:
2 p; e* ?2 P$ k8 @" A#ifndef QTCONCURRENT_RUNBASE_H: ]' ~1 a$ l& _
#define QTCONCURRENT_RUNBASE_H" i- g. n/ f+ e) k; s9 H7 E" N& ]
" p* x7 c+ |2 |9 d z#include <QtCore/qglobal.h>" R7 X: F+ I7 F! E2 E! H
2 \' O% O6 {. Y b#ifndef QT_NO_CONCURRENT0 H9 v' \+ J+ y+ z5 m4 K) g, u. [
6 T! V/ s5 E) R9 t#include <QtCore/qfuture.h>
& ^& i, v/ ?" t' [3 X#include <QtCore/qrunnable.h>
( Y( _# m8 S! o- o#include <QtCore/qthreadpool.h>
$ w2 G' n0 k* ^& m% |# a* e5 u8 {1 D3 F5 Z) Y, M0 z
QT_BEGIN_HEADER
" M3 w. e* a* M7 ?$ w' [9 u3 uQT_BEGIN_NAMESPACE& P0 V! P# R' g) h( f8 E$ D
, P0 V* |7 z# G7 ~) M& a7 ~6 n- n& w
QT_MODULE(Core)
! c9 k5 P, e+ J' H/ L6 v
) n8 J) N+ q2 @) v#ifndef qdoc
2 B' g3 v2 Z. w" \' {' h3 @
& U+ ?1 D5 ]# t0 s. F' inamespace QtConcurrent {9 O4 R$ ]+ x, y; o; \7 V6 s8 S
5 C9 g8 m$ q/ I, w: b2 Y7 v
template <typename T>
5 M2 X2 Z, |* M6 Qstruct SelectSpecialization% H' T# I; N8 F6 ^; |
{2 Z: }" f- a" O, ~" ]
template <class Normal, class Void>, o: f9 v) `/ t; T# Y
struct Type { typedef Normal type; };
3 ^4 a( w* A& T( M/ f};3 x" b- S3 g- A8 m2 U0 _, e. U
& Y( q/ @) Z k* ?9 C3 Stemplate <>5 e* v, F/ |# Z" e$ Z, ~, x4 T% {. S
struct SelectSpecialization<void>
' ?/ E$ H+ O. ?/ O0 T% x{* W1 l t3 R' I0 B& S" g. u
template <class Normal, class Void>
1 J1 Q7 f0 A+ Z. t" e+ V9 K struct Type { typedef Void type; };2 F" V6 L R: Y0 p- I! G) K
};
& @+ k- N0 J3 ?( T- u5 C
- U6 [# v5 w) ?+ L$ R* mtemplate <typename T>
g r* M- ^5 m; B$ Hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% e" {; k2 q1 b+ ~6 X{6 S2 k; X& g0 z- K- P' c1 p2 W9 m
public:
- h* w& `! O! i! f; P0 G" | QFuture<T> start()' c/ R3 k2 d! m- W! M. V% S
{- A; X4 h$ @! d+ G# a
this->setRunnable(this);
. E/ t( D3 w8 ]% B4 F; ^( ~ this->reportStarted();) ^. S5 k- b/ J7 x4 Y
QFuture<T> future = this->future();) t2 D6 q+ i& S9 R- f }6 b5 E
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. A8 O1 q9 M" a. e% H H
return future;( M2 _2 W: g* f" ?6 b
}
" x5 k2 Y8 f5 Y2 ]' d" x$ x
0 C, ]0 S; E' |2 |9 h7 w Y void run() {}- y# ~- s/ [& Q! `7 _' w( l- I
virtual void runFunctor() = 0;( a1 W3 V b# I& s6 T5 n! ?" h
};4 l* n5 O8 z% W
7 |' @7 A; r! htemplate <typename T>
: W7 q8 X; T; n1 d mclass RunFunctionTask : public RunFunctionTaskBase<T>
& {/ \) D+ T! G. k{
: a/ A9 L8 T" e' _public:
3 Z. ] g% e9 T6 [' Z- ^5 @1 } void run()/ i9 r e/ y/ Q
{" n' m3 s4 [; P
if (this->isCanceled()) {! P" a1 W) ?$ T- m/ D+ h
this->reportFinished();# I) j) E, s. T, [
return;
7 c4 J( `; @% c5 @) I' b- y }
4 O* p/ y/ } G/ Y! k3 E2 t7 y6 `/ O- V this->runFunctor();7 K/ t: O% Z+ \; h2 q R
this->reportResult(result);$ g; ?- P* I& N. E4 h F- U
this->reportFinished();
6 ?& h4 D+ v3 `0 i9 L" ` }: \: @9 e3 d9 \3 I; ~( h( M: ?
T result;
, ?, C/ u* |3 _: s5 b/ S! J1 J};
% ]# }5 d- O6 p: n. h0 I. A0 K- F3 V. s7 ]& N! f4 C/ x
template <>$ @, D+ c$ T9 i* M
class RunFunctionTask<void> : public RunFunctionTaskBase<void>* \" ]9 p8 f0 X1 Y; E' O
{
/ @. h- M$ y9 m6 hpublic:7 \7 j0 g; o- U5 w5 A& m
void run()
( ^* r5 E- a5 b- g* Z3 v {& L! o3 f& g# i+ ?
if (this->isCanceled()) {% d M2 g1 q/ a9 p4 M3 n9 E
this->reportFinished();4 k$ q4 R' p( ?( [4 L6 e* L
return;, x7 z/ x: M( ?/ w% _3 S
}3 s( H, p$ v1 a8 L5 J& P5 r7 n# E
this->runFunctor();
/ ]$ a0 s x. s/ w this->reportFinished();9 w+ e4 F7 L! H
}
: b$ B1 g" z" ?! a' _3 y};
: W; r: a- P7 |+ \# c3 S9 e/ e5 w. V5 y4 i' |: l, o6 e
} //namespace QtConcurrent2 w# W& x0 |- J0 M
; N+ d* [/ k& o% @- N: J- d. D#endif //qdoc) i7 ^) q: u' ~1 b; u
3 f2 ^9 X7 a0 p* h6 n6 D3 g' xQT_END_NAMESPACE9 ^9 y0 U" Y2 s
QT_END_HEADER
4 C# Y+ ]- e8 i9 I* j* `9 y
4 ` j1 }3 U) H3 B#endif // QT_NO_CONCURRENT
; I3 \* g& L: j; P1 F; I. z0 I
" q! P. P, B8 }#endif% ]4 ]' u _; \# u
3 s. N8 ^# Y, _: h' D |
|