|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
- R5 T1 O8 d8 p. j- P. V- K, X/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
. ^7 M1 y* E) d. U$ |2 v
1 d! I0 ]4 x6 w9 n7 n这个头文件内容如下:
) U& [2 w& G5 a' P#ifndef QTCONCURRENT_RUNBASE_H! C% ?: m, z1 ?& T+ q
#define QTCONCURRENT_RUNBASE_H; P- U' d7 f" ~5 }/ O6 @! a
- ~" ]( A. T% D#include <QtCore/qglobal.h>
! w, J0 s9 ?( q4 M' J. K* y. d& m/ w9 k( E8 h; Q# R
#ifndef QT_NO_CONCURRENT
1 }: S. p0 a5 h% R$ }
, R6 R. v! t7 [. ~( u8 J#include <QtCore/qfuture.h>
* ~5 ^" M0 W6 m3 O' E7 A# l9 U#include <QtCore/qrunnable.h>
, W+ l; `! G# y6 V% p#include <QtCore/qthreadpool.h>
, e+ B/ S* Y7 u/ D' O6 A
% V2 w1 |9 w* B' g4 iQT_BEGIN_HEADER k- v. f4 A+ k& P8 L- d
QT_BEGIN_NAMESPACE- n7 I9 m1 e4 R/ w+ F$ W4 H
l- [: j5 B8 B8 A I
QT_MODULE(Core)4 |/ X: b8 I- }: C! K# z
' ^4 z7 Z2 [" T: N#ifndef qdoc
) Q) g) {3 C" s5 I7 x- F3 B: i
/ e1 K0 m9 C+ t- ?7 Inamespace QtConcurrent {4 t) S: B, l2 ~$ t/ }
( c1 l2 t9 @. f+ ~ D' ntemplate <typename T>" Z6 T1 n3 c; K( G# W
struct SelectSpecialization( P0 F2 h4 s* l1 j3 D+ ?
{* u/ J% X8 F+ p. u8 h3 w+ |
template <class Normal, class Void>2 |3 ]6 a8 s& j. D, F8 f
struct Type { typedef Normal type; };, t8 N* D5 g3 L1 X# e
};
5 k9 c a7 S0 X6 O& C1 t
( m, _" ]7 h9 q% e$ Y8 ntemplate <>
0 T" s- R% M; T5 Bstruct SelectSpecialization<void>& g# ~' q* \8 T2 a! o
{
( o* P5 {- F+ j: n$ b& L template <class Normal, class Void>8 G z0 |3 Q t4 `# y! T2 u2 x
struct Type { typedef Void type; };
- e$ r9 e4 x. v H5 F& b, @3 N! U};( [) P ?. e2 ~0 f
/ \2 k% s' P. ~) I/ i$ k- q5 A) ^template <typename T>
& h& t5 [3 ^2 g6 a5 Y. j& N5 tclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 p" v% d+ l6 A% ?2 K N{( e, [5 h2 D2 C' f
public:
. ^/ O, \1 K' S1 K& n- Q QFuture<T> start()3 A# l$ w% L4 T# b0 t4 F; @
{4 J' v# _7 p% X2 Y3 ^* B
this->setRunnable(this);
- G1 A8 {3 p1 A$ I1 d4 x* z this->reportStarted();2 D8 F' i. s" A0 ^0 N! I
QFuture<T> future = this->future();
+ X& I& n( {+ i QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
U/ n! x9 R. O" r! d, O return future;7 o3 Z8 b1 g2 z1 I
}" v, Z v8 n. R% h( z+ T+ h
( y* V2 Y* y; T% a. D3 Y9 g$ |) H void run() {}
) m2 [8 J2 d( h$ L virtual void runFunctor() = 0;
3 B3 u8 z% x. r" a9 `};
: E. ^- J% |. P2 A8 v* I3 R. B, X2 J% G$ S- P
template <typename T>
2 A! V, C, i0 j5 ~6 O* N8 r0 Iclass RunFunctionTask : public RunFunctionTaskBase<T>
& C8 }( A& {5 [. Y$ J{
- Y7 ^' N0 q$ F0 Z+ ?# D* `( npublic:
2 K# {# j6 ^) X" d; H void run()
7 |$ J; H& P( ` {( P/ i/ l* v% V) t; a
if (this->isCanceled()) {
/ Y% @7 |% t0 s! `# K t' P" u8 Y this->reportFinished();
# C6 W1 }$ R* k7 d! I) n/ Q9 I F return;$ r6 [6 r4 `+ f4 B& o/ {
}
$ B- { P+ q& d: `& V; b. y this->runFunctor();
0 m( U5 ^5 I+ [% X this->reportResult(result);
) W! b; S8 P6 S5 _) m this->reportFinished();, U: j# W* _+ K0 G* W) [9 [" W: C2 h
}
, b( Z1 J5 q8 n T result;* U- h+ |; V6 k+ Y4 P
};% m+ o; J1 d5 z1 l4 A. @
. N% o3 M [+ ^( ]6 rtemplate <>
. ~- h* w: e( a/ rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
! H6 \' K" o7 q$ C, @$ p5 P+ L{
: G, y, H% T5 [" F: Ypublic:; U- m; N% @; w% t& l* e" q! K
void run()
: m8 H( K% z+ N7 `3 E& l: i1 \ {
" @. P1 j* F; G if (this->isCanceled()) {+ Z3 e- S; Z0 b, i) R" B; T% a# v
this->reportFinished();. Y3 X' q- h, g/ o9 \
return;. |% t4 e. e% _7 B2 D
}
5 N0 F2 r @' X0 m# q7 g* ?( O this->runFunctor();
5 v! H) Y5 e% [ this->reportFinished();
2 m/ M9 p, Q/ U }8 F* ]5 J. {& ~4 S) j
};
( t/ R N7 }; r u1 S6 |0 s5 I# f% @, r' S1 ~" y( H
} //namespace QtConcurrent
$ P5 U8 f9 l& V8 y2 ?4 U: z2 Z4 p& r6 w. ^/ E) V
#endif //qdoc, J' {2 f, D) e$ c: o6 W
- ]0 F6 a0 {: L$ `7 {4 r
QT_END_NAMESPACE$ L2 z5 @8 D; }; W3 }7 N
QT_END_HEADER
, {$ w. z4 Y% F9 r% x4 N) E
9 v0 C& x9 o4 y1 L- y#endif // QT_NO_CONCURRENT
/ |3 z0 Q$ M1 x2 l# E2 g+ U2 F" O$ t
#endif
! O. H2 t6 D: G v+ s( r
$ b5 P ~8 E. g2 D3 x6 U |
|