|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ h: Q' z: r% ~
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% u9 j" r% H6 f9 \6 ? e
) }8 | u& g- j这个头文件内容如下:# y; ^. [! e% i: J
#ifndef QTCONCURRENT_RUNBASE_H$ {3 _7 _7 {' R) J( Z) u( F: p. r
#define QTCONCURRENT_RUNBASE_H
* K+ ?3 M ^# k7 I b' Q" {4 }9 Q' n; f9 n3 `& I1 d
#include <QtCore/qglobal.h>( @) L( ~( P: g+ ?
: V q0 V1 ~$ N! i' G+ p& E; u* n
#ifndef QT_NO_CONCURRENT8 Y7 ?/ r. g- N+ e0 L
, u& m9 w: z0 G( O8 M" c) X4 Q#include <QtCore/qfuture.h>
; B! s! U6 l0 T#include <QtCore/qrunnable.h>; `! W. k! P' _ o' [4 K$ E
#include <QtCore/qthreadpool.h>
8 q d. Y3 v: z& O+ }5 t0 [( b k9 |' B2 e& O ^
QT_BEGIN_HEADER
, |1 ^4 c+ q1 Q1 v$ y/ i4 B! `+ d) a$ dQT_BEGIN_NAMESPACE: f6 v7 I! q+ ^, g
3 E- v1 w% s# V8 H; TQT_MODULE(Core)% b0 B, R5 t& z. x7 B
, j n4 ?8 G, ~1 j' b4 T+ A
#ifndef qdoc( G! z3 S- ?" R- C# R3 s
& G0 L( q! K7 \8 T
namespace QtConcurrent {
, C) Z1 J. B6 F5 W- r* E3 R8 U3 m
4 t# q$ n& }4 o! `: Ntemplate <typename T>. W a2 z# h9 h$ R
struct SelectSpecialization
, L. Q7 z; c( Y$ G$ q4 A{" ~$ r/ b# K( G$ N
template <class Normal, class Void>
$ k7 G! i4 ]- B* a; @$ S struct Type { typedef Normal type; };
, Q$ ^0 S5 w! _! T};$ r1 m# p! s8 H# f" p1 T
. U' S7 J% ~1 ]0 ^7 S$ ]1 ftemplate <>
" }) u0 z C; v' ?! @' S. Bstruct SelectSpecialization<void>) M& W; W* d! N T3 p! Q8 e
{1 h" Z- W& h; y- S: I* ]2 O; i
template <class Normal, class Void>/ a: v& H6 b8 H1 k5 S1 m
struct Type { typedef Void type; };2 T9 ?* b; r% a
};1 U1 b* U" W9 I) f0 F
/ j; |; p+ W! ^/ Otemplate <typename T>% ]9 Z2 q+ Z! ~& q' L9 k, J
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ K# Z' E) D9 l7 K8 N' ~* ~{
1 ^) g5 A$ {0 B# M c) e Bpublic:
W7 N* _. q, [, Y QFuture<T> start()! e, e, f4 z, s
{
5 B& X& [* m' T" R: d) J this->setRunnable(this);
E. b) p: h [/ F4 d" f. ^2 }, N this->reportStarted();
8 n, g( N, |8 S% {7 J QFuture<T> future = this->future();. e3 M: q" u# ]- `+ n% C$ U* ]# ]# ]
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* @" \4 z# r$ b) a- c3 A6 n: ?* _ return future;
: L% t; R0 f8 \7 {; m4 K$ q }
: p0 b6 T/ F: L. r% o8 D2 V- q: K# @% f. V% I8 L( V% A
void run() {}
- e% s. ^/ n1 j virtual void runFunctor() = 0;
, `1 H" `, |! b. [};; m6 d, d" k; T( }, d/ t
: h4 Y- b' d! r' B
template <typename T>
2 X% s Y g6 `6 y. wclass RunFunctionTask : public RunFunctionTaskBase<T>9 o, x! ^1 z- h) C+ V
{ r% C& b3 |; R D- w- X
public:4 y2 G* v8 t' ^# B# l. Z. b) M- o1 ?. l
void run()
/ T& J# `2 r4 @. @; O! d4 q {
- `: N+ _6 X' v3 B s" R/ e if (this->isCanceled()) {, U- Y9 [& e" s: K5 e7 `" ^+ A/ j
this->reportFinished();8 s3 t1 ^0 T. g& ~) k# o- b2 N
return;
! E4 @9 N" X. a0 p }
4 [, V+ N- A) L _; P this->runFunctor();: J/ }6 G( Q* w* \& _: K% F3 B5 L
this->reportResult(result);; y7 q0 X X7 F! [# k
this->reportFinished();
6 z7 R6 @5 b) j/ \3 U0 Z* B* i8 _ }
$ b/ W' M9 a2 X! K T result;. u7 R: A' _8 m% S5 y3 Z
};
# P) f# b' ~7 M( o4 W: s! W+ e
template <>
0 Q; i9 P8 v( @, K: K2 Nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
0 Z$ h% M; R6 b" _# T1 K{
0 f, m" i) a* c4 S/ i3 A4 ^public:- Q% K0 x) ~ e2 O+ |6 \) S$ M
void run()
1 Y1 o1 a3 v( d' s" V0 _. ~! x {
' M& v% s9 U! K1 Y9 ^9 V! b if (this->isCanceled()) {
. B; Q; ]+ q2 {% I/ c5 j0 X% O this->reportFinished();
; I$ |5 h# U2 D! ^! y return;
, R( W) f) ?0 i- Y' c' P, y }
; r, o6 @$ q6 _$ x this->runFunctor();
' C4 ?: Q1 J# N0 G this->reportFinished();
/ ~) O; E, q$ V! D6 M% F }
$ i8 {4 x& r+ {: b% {8 R/ }};; z( ], c* N7 b
9 v6 E& D0 U' n! `
} //namespace QtConcurrent' I1 z- ~! {3 I5 @8 ~$ N2 }
) ^+ k- O. V$ E' c& \- r
#endif //qdoc0 g5 z. \- A! j0 y7 z
$ l' o* R4 d/ G' x9 N; BQT_END_NAMESPACE
. i! ^" y1 L7 t: r5 XQT_END_HEADER, ?2 A& p( _9 E# O% y9 n7 T" ?
$ n0 W* q6 G" W" p! _( P
#endif // QT_NO_CONCURRENT
1 @: p+ D& Q: t0 @. U0 m6 ^# k& n7 _" h- c# S
#endif P$ e& C9 y; u. I4 q/ |- S
_7 u8 N! O* H( X
|
|