|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
& H; u" H/ @5 S" 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'
, v5 g2 k" r- E3 w0 u, j: H" Q+ z, G" d
这个头文件内容如下:
% V4 J7 _- b5 t( C2 \#ifndef QTCONCURRENT_RUNBASE_H. P% S% K, s8 z' r
#define QTCONCURRENT_RUNBASE_H6 V3 g! m7 y) \/ h& j
5 N8 C5 O' p7 h. R1 B#include <QtCore/qglobal.h>
5 [ e. ] T S# u% R4 M% C
- Z0 v/ x$ |! v, M6 _6 V7 v2 V#ifndef QT_NO_CONCURRENT
) q1 O2 Q6 ] `$ z/ V! c. [( r6 Q( m8 b4 W
#include <QtCore/qfuture.h>
, A) B1 I# A6 @: B#include <QtCore/qrunnable.h>
, a6 I: }' e" ~8 g5 G#include <QtCore/qthreadpool.h>* k2 T8 R& R, Q( d* l
2 V, R0 s$ T4 k3 q* }QT_BEGIN_HEADER
4 [0 b/ P1 n$ [7 m' L, T& Y# NQT_BEGIN_NAMESPACE
4 s" e' F- U/ e2 q/ F0 s" V. \. n7 x# I
QT_MODULE(Core)9 y# N% X8 V2 E6 E4 C
6 P5 A* A9 C; k- E; p' d+ e# r/ U- I#ifndef qdoc6 X- w7 S: h9 @4 h- N
- r6 C7 T+ P8 l* Z, o
namespace QtConcurrent {& ]/ x* G6 M5 n- i% F- p
. {, r4 Z# J* B& l* s5 k7 x
template <typename T>: }. e; M3 W2 S
struct SelectSpecialization! V0 p9 T" e2 _+ f v8 E* P: U
{2 t4 m+ T( n) x: T& m a. d% A: \
template <class Normal, class Void>
( z% z9 J: U+ Q0 T o# K struct Type { typedef Normal type; };6 h9 X( t+ a+ i4 Y
};4 z4 [8 I% b3 S1 Q3 a+ X( r0 Y2 K
, a4 H& h% J% ?% D* D
template <>
7 H9 A2 z1 r% e2 jstruct SelectSpecialization<void>
, y# ?1 T5 {8 e/ D% B# } [; k{
5 z* P# O+ x; k, r template <class Normal, class Void>9 N, t+ ?' f0 @2 V$ Q
struct Type { typedef Void type; };; N6 N: Q- \ m; m" _% f
};7 Y' v. ^; |& a( m- g8 d' U
, y( y( E4 p7 g' c
template <typename T>7 r; m. E( n' |$ j
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; U3 D" O' f; V$ p! x1 Y. Z
{
( r$ X9 W1 R2 A; _: Opublic:
1 p7 i5 b) a6 X7 Z" j2 d6 l QFuture<T> start()6 y1 ?% L/ P" p5 M
{; I8 _. `0 S& d/ [
this->setRunnable(this);
! ~2 S; ~, i, U$ W! v' I1 M this->reportStarted();$ q; X# [+ Z7 ]
QFuture<T> future = this->future();
4 l: H7 t% I4 v+ c2 d& Z/ v) ? QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);, r- s7 L J3 o4 N" `' ^
return future;0 W- y; R$ u' K6 x; C' k6 M/ A
}0 Z) u2 H% B. B
, B4 n: |3 n% j( A, F# \; ?
void run() {}
* e1 V+ V( V( Q virtual void runFunctor() = 0;, i Y" l. G$ @7 c6 q8 Q8 o, w
};- A# |, D; j: _; C
3 b7 Z* n4 K4 Z! Q' P: W9 D0 d/ q$ w0 G
template <typename T>+ \# r9 B+ K- R- D8 Z
class RunFunctionTask : public RunFunctionTaskBase<T>
# Q# _4 r0 S2 z) @{9 T. [% ~1 F: |* a9 _
public:0 x' @( _- S2 t1 O/ \
void run()
! g2 @. q4 z' H( ^8 J8 j1 } {4 T2 t! t1 T! w9 x8 @% }1 R' M
if (this->isCanceled()) {6 ]* q: u# f2 W- ~+ i# k
this->reportFinished();
, A& X! K$ a$ c d+ o0 o: f return;- m/ N! _ Q* P/ Z- S* R6 r
}
8 e' i, l) O, ^ this->runFunctor();
( s9 i9 N# C& `0 I7 m) D! e% m& y: o this->reportResult(result);
9 m0 |, }/ c9 h3 H: J& U3 p* j this->reportFinished();0 D# K4 j) L2 H+ J
}4 N. L' F8 `" C
T result;
/ h% W# o7 p) R# s};% X6 S- v h) | E4 f. k/ E- x
6 c* [6 e$ {' M. ?) A1 Q+ btemplate <>
+ k1 W' O0 w/ X, s) kclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
8 h. N" O O( O% D{
2 \2 ]- K- i7 D+ t1 L `" s' O/ I; Vpublic:
9 @/ b9 e/ G r- k4 ? void run()3 O4 Q2 X1 G7 j' z" }: R
{$ p5 D2 o* N3 O7 E" o
if (this->isCanceled()) {
( \7 H/ O7 w& I this->reportFinished();
2 j o3 p& s; }' q o/ v/ f) K return;: L4 ^: Q: |6 r C- n
}; I9 z* Y9 m! T' U
this->runFunctor();
6 ]( Y4 H5 k" r0 p# ?! d& K& g, f6 x this->reportFinished();4 w/ C# A( O. R7 S) l
}
& g' q7 ]6 L* T1 W; u& T};
0 P* b* H% N# ?$ E$ P, D5 E6 N" s. C/ p& W
} //namespace QtConcurrent
~4 N* e* Q6 w5 K6 C( T3 _
! {- Q& T& [& Q1 B( z, ?7 W; m#endif //qdoc
' m' i- t9 \* k1 \: k5 r1 q( s% C/ G- p6 K2 M V. y2 T
QT_END_NAMESPACE! B4 v4 a1 v( F0 i7 B
QT_END_HEADER8 ` w! C9 r( `. C4 h4 L# K
* R$ V" n- ]0 Z, w, M
#endif // QT_NO_CONCURRENT
( s$ c+ k( `& R! I% K
! P& H5 i$ b, O _6 W7 p5 G#endif
( g) N/ o X* @2 ?# I# ~* h
) \; e: U5 g: X4 }; C |
|