|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 O9 Q; ?6 l0 D
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
# l. b6 ^. }) M# M$ G# ]2 q
4 P, o- y6 l: Q3 S1 ^! E这个头文件内容如下:
' k4 P7 Q* Y; A5 G9 D( u0 m* m' ]' Q" Q#ifndef QTCONCURRENT_RUNBASE_H
5 ?1 L* B4 q" V#define QTCONCURRENT_RUNBASE_H& u% S% H' P+ |3 B9 y
9 A. K8 j3 P5 Z9 O) H/ A0 }
#include <QtCore/qglobal.h>
n, q* E# [, B4 u8 R
; s5 \; A1 I, k#ifndef QT_NO_CONCURRENT
, T, | }4 o1 {# r: r
$ y: z+ \& J( S) @+ c1 S' R#include <QtCore/qfuture.h> \* z N! l: ^% S1 D
#include <QtCore/qrunnable.h>' R+ H+ ^+ o( ?+ `# ?
#include <QtCore/qthreadpool.h>
' B- u( q6 M! P7 V# Y% @
9 O* {4 n. x5 N. s) O6 fQT_BEGIN_HEADER, G ~% y. x" X5 Q/ O
QT_BEGIN_NAMESPACE3 @& M0 A: Q( P
& q# D& M& d& W
QT_MODULE(Core)+ b. g( R* }" x. R% c3 ~0 \7 v
h( M! z' p. p G- r4 x#ifndef qdoc4 n6 L* }& M; E
: t" R" R; l, T7 t, ?5 @+ W
namespace QtConcurrent {4 g6 \. d. Q" k% Q y' Y
1 q* ?# s1 m+ I6 h: M5 w& r% u9 ztemplate <typename T>* O l; c' W' X5 a% K; i
struct SelectSpecialization. K- w1 r& u( U! B! C( ?/ e
{+ }& o# s$ q- c" u |' _( B
template <class Normal, class Void>
5 n# P" W0 z0 A! Y6 u+ z! \6 ?$ c struct Type { typedef Normal type; };- ^* ?# J- d8 }
};+ A) [: W5 p; ^/ U; i
+ r' M+ ~' ~# z4 R9 V7 M- E
template <> a3 x8 r5 Y0 D+ @& S- j% B
struct SelectSpecialization<void>
* o: b8 K6 ]9 j3 @{
, t; e% t) {. {' ?1 k: I template <class Normal, class Void>2 p6 C, H' D" }6 \% P0 I8 B
struct Type { typedef Void type; };
& K2 p: l# C) ~+ b1 A};. G) Q* o. R) L( j
9 t( l9 @0 w, o+ t- n0 P
template <typename T>2 A$ Q5 W" }( J5 w" b# q7 |
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' y; E% y9 T; W6 a' u! p- ], Q& g% w/ C
{
+ X+ ^$ O' a& l0 v4 s8 D+ K. P$ U) Bpublic:. w, K4 d% ^" z0 W+ I) u
QFuture<T> start()- S' J. V4 b- c/ e' |9 r$ \
{
. @. j, \) U/ ]& z W this->setRunnable(this);3 H7 g. A, q6 r7 `: n0 F
this->reportStarted();
- ~9 H7 }& t' h' g, _ W- {; O% G QFuture<T> future = this->future();( d3 C4 N' D7 R: D" T, {- @
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 X5 j' [, s4 B+ ]* n/ U return future;3 I7 D* S* K& e1 j
}
! H0 p$ h& j' P. O3 m& o, x6 M' K% G9 }, J- U5 H
void run() {}6 P. s" |) m$ V
virtual void runFunctor() = 0;# F5 r& q( H! U6 j! E" e' i# I
};; N f3 B/ `/ u
; c( b, `. x3 T# e* ^+ d) C3 b( ?7 _
template <typename T>
; A. U, Z, J* t8 R# e8 J' cclass RunFunctionTask : public RunFunctionTaskBase<T>
/ ^, `* N, l! q Q9 ^! y+ U{0 l4 k) W. B0 E+ j3 m
public:: x$ s$ k8 p8 h2 O# P
void run()
. q( o* j, V, I+ @5 Q7 v {
3 p( M! ]7 `3 {2 D, N8 Y. Q if (this->isCanceled()) {
3 ^6 ~7 I3 ]3 G8 O7 i) ?6 w7 V this->reportFinished();
3 v+ ^# k& f2 c" n7 Y5 q return;3 [2 \$ J) w4 W7 {; w C, t
}
! P) ^) \, F- q$ [# J6 N" Z5 x this->runFunctor();% ~" a% D# K: a/ Z: A% B9 \9 ]
this->reportResult(result);
8 H: e7 z, [: M2 A this->reportFinished();9 P# G; V! z9 l
}8 M( b" t1 ^; `) F+ `
T result;9 z. ^5 Q4 s6 [. m7 M( j
};7 L9 h M( b3 z# A( ^) M7 H F
- a/ i$ _ |% |( _ W
template <>
' V* c% ]. ~( Vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
4 Z7 ]7 `5 t: t3 H9 h7 r{
$ _4 A$ ]$ K3 J& b2 k" g. Lpublic:9 d' d# t& R% W9 Z
void run(); A3 {2 W0 P# A1 B- G a
{# N J( M1 k1 d3 m* h9 d* O$ L
if (this->isCanceled()) {% h4 s8 N; `3 N$ Y; T6 ]
this->reportFinished();9 A/ @' j. M) L+ q
return;" [. X. j9 A$ t9 ?7 G7 X
}; k" S; a4 Y# b( p: M V
this->runFunctor();
/ V; n# D4 H$ x, `% P1 e m3 S9 K7 F this->reportFinished();
2 K' F( c! r, ?9 o }9 l; [! O( x# }, W s4 L% H! j$ C) O
};
( \+ v0 D6 t6 {
0 z* A: W/ f" k. E0 U- @} //namespace QtConcurrent3 E; s6 M0 R% _8 D( }. g
- q! j& a+ |9 W% B#endif //qdoc, W- q8 R, r/ n4 W" `9 Z1 k: ^
$ V, S5 q+ i; U; P( Z. P3 h$ l
QT_END_NAMESPACE
$ ^' R% C: G* \: S0 c" P$ O5 `! bQT_END_HEADER
* K* O" M0 g" ]: q7 T' D+ Y
- J7 }2 [* y8 o5 I#endif // QT_NO_CONCURRENT
! n6 J- F& A8 D8 m" W+ v5 f! R, x5 e
6 z. g. O4 A! p$ x& {/ L ~#endif
: n1 v, p- {7 O3 ?) N; \2 d0 `) q+ k5 r
|
|