|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 a- ~0 T) s6 G M
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
( _9 y% ?- E7 m4 H' ^- Y9 |& r5 N+ D
这个头文件内容如下:
. x+ Z7 p; D/ E) o, K, z% z#ifndef QTCONCURRENT_RUNBASE_H
7 ] y) g9 D0 s/ K2 `, w: n+ [4 j* q#define QTCONCURRENT_RUNBASE_H
8 Y- \" b- X) ?) a
; A% x7 U' s& t( a) E) c3 d7 R0 k#include <QtCore/qglobal.h>2 E, y7 s6 F1 ]$ y$ i. G
. J3 _& Z- F. o6 d% I6 F#ifndef QT_NO_CONCURRENT, d' y' J& U1 M
1 k* y H. J( M c#include <QtCore/qfuture.h>3 U1 u2 w, T: B' N, \
#include <QtCore/qrunnable.h>8 f$ \" @, O( V! X0 E& v7 T
#include <QtCore/qthreadpool.h># p. X! Q; A Q( H" f" j+ ^
' h" h4 j6 e8 Z" q( N L f S" [
QT_BEGIN_HEADER: a: z; Q c8 p! m0 m
QT_BEGIN_NAMESPACE
3 b+ h2 w( W! {5 H: Q$ F
2 R* j" o8 _: F# J% N8 ~+ |QT_MODULE(Core)
' Q* f- P# t) ^: Z; G3 a P) F4 v1 L) [& V& D/ M b
#ifndef qdoc+ ^; n9 F+ X5 J2 P7 N
5 H0 m6 X3 d2 s: Cnamespace QtConcurrent {
! z5 l- h( W, A" P" q8 `; N+ g1 g9 X3 [3 N, t
template <typename T>
4 b- |( M2 ?, e3 w7 g7 Astruct SelectSpecialization) o N4 p* B& o1 l! z7 D; `
{9 M4 k/ S4 w$ ]8 B+ H; t
template <class Normal, class Void>( B6 a# ~" b* P7 Y3 B; H3 _
struct Type { typedef Normal type; };
& U* D# X. |2 N/ ?8 @ ?};
4 A+ }* \4 C# o# d$ t" x, i3 h$ S; R2 H
template <>4 e d3 Y1 B% x+ z) R+ b2 g+ p; |
struct SelectSpecialization<void>
( N! h7 O8 h( Y Z5 y{# q ^0 y( `# n- V" Y; P
template <class Normal, class Void>
+ z; u8 C' L; E; V |7 ^2 t struct Type { typedef Void type; };: K E0 S; ^- ~: c
};
7 w7 V% s: `& g6 x5 G& C6 ^3 K y+ S" E6 ^
template <typename T>* E& G2 X* V" J8 q: x
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 h; [: }( C- \, H8 W{7 P' w( `% Y* f) Q. g4 g
public:
- w4 o0 j' t x- t) y+ O: X! S$ O" j QFuture<T> start()
6 V+ @* y* y$ R; G {9 t5 W8 F: i( G8 D/ e, ^! \
this->setRunnable(this);
2 K8 ~$ i: e K0 L7 G# Y3 ? this->reportStarted();! \) G( p a1 k3 Y- t
QFuture<T> future = this->future();
1 M7 u/ ?1 G/ F( \2 x QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
4 d) T+ F3 S' G$ z/ s/ Q* W Z6 E return future;+ P, ^8 D5 _0 B7 f, b6 k: c
}
* q {+ G U3 W$ j. v
- y* M' l3 M4 e) N U( R4 h void run() {}
+ p; c: J c I" s3 ~: z* n7 e virtual void runFunctor() = 0;# g2 e& C. o" w
};
9 h" s; K0 J* y6 m |
' f! _# z2 E, [2 Itemplate <typename T>
: X) ^$ {! i, n2 H) V! gclass RunFunctionTask : public RunFunctionTaskBase<T>9 l7 c; M- x) k. g+ d, r
{0 z* D+ ?0 n. R$ [& @- C
public:3 V0 U+ h+ H! e$ V; ]' ]
void run(), x+ g y, Y: m) d2 T6 H: B
{2 {# B+ h& `' L6 G6 O& w5 {' j
if (this->isCanceled()) {' c" n. G' |$ w- w9 Z. }4 O
this->reportFinished();
5 L1 m8 I, Z' c1 e. S return;
- W6 Q7 s+ M, D" N5 t+ H9 s: P }
3 q( p# `. c% }( Z4 P- x) M. w0 l5 a this->runFunctor();
! d' o6 j j" r* ]3 l this->reportResult(result);
* [; w0 U7 c! ?) X; C this->reportFinished();% M. m* r3 B- C# l& J
}* o8 J. [3 x; H% P9 i( Q
T result;
: O c- _+ F4 T x1 E1 H$ D& {};6 L! Q) b$ O& ~1 D3 r7 r
7 Q& B! X( d7 [' E5 Q
template <>1 K; j0 x; H5 \5 X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
* k# F' A6 I3 ]5 b+ r{
! y8 ?1 ?. J) l4 C6 }" ~public:, m: P, p( D2 o; [" q9 \( U
void run()
) a4 G$ H* X- G7 N1 |: T {
/ b H. b$ g2 k3 T; G: z$ G if (this->isCanceled()) {
" z s* X# [3 ?/ c4 ^- v2 j( r this->reportFinished();
' Z# G. h5 E% u m# A; j" C return;
3 e: t& h1 z$ f3 B: e. p }
+ Z" e: ?9 f" l! O+ ?3 R' |9 A) M' ` this->runFunctor();
( s/ I/ Y; j: P6 ]1 G% b this->reportFinished();
4 a% G" [% m2 j }8 x8 H G, C1 e" M! i6 l T
};
7 x1 Q7 G' c; E( t9 [
. ]; c0 k9 s1 K+ w: K! R1 D} //namespace QtConcurrent' r- A# K4 n) w* o7 T+ y' T
6 \: T S% U' Y#endif //qdoc
# ]7 l9 |" E4 `8 f1 C9 ?0 d+ f4 f& _
QT_END_NAMESPACE# `5 _/ `# R. `* f# X
QT_END_HEADER
a( R: n* U4 T" [& v1 G
. ]- U0 q* v) Z#endif // QT_NO_CONCURRENT
' J( H3 y2 m& C$ I' y$ r9 B, A$ r; B
# }1 p& d% f/ L#endif" |" \% A# r0 m! P$ V, f
- L! @! }" ^' u0 n+ Q |
|