|
|
我对syslink进行交叉编译到arm,但是出现如下错误: r8 W, @ O. C: a) Y0 Q# o
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'/ Z: c1 P* M# M
/ [5 m# q! a6 |
这个头文件内容如下:$ n: q2 }" H* b) q8 r4 L
#ifndef QTCONCURRENT_RUNBASE_H
( B8 s0 i8 C3 r4 {#define QTCONCURRENT_RUNBASE_H
5 U8 r7 u5 n9 J( E- f a! s+ E' t9 S* w# }' r. e! X0 ?" _3 j
#include <QtCore/qglobal.h>2 {- \, p3 K6 z) u
0 g3 J. Y. ]8 p- _) v6 s+ o
#ifndef QT_NO_CONCURRENT( N. Y" q1 Q1 @3 B( m; M- c5 M
7 i) ~3 |4 M: N& y. x9 S7 I3 V#include <QtCore/qfuture.h>
1 \3 \4 D. p/ Y5 f( e#include <QtCore/qrunnable.h>
/ l: ]4 t9 y5 w+ |: |0 }% s: r#include <QtCore/qthreadpool.h>
" D, R7 |* y: Z3 U1 N
% N! p# _7 i6 W D) ?QT_BEGIN_HEADER
: q% W* T* R. f: n: j7 K5 M% gQT_BEGIN_NAMESPACE. x* P) [3 ]( j0 @: X
1 D0 x. E/ u! Z" wQT_MODULE(Core)
8 e: G% V8 t0 N2 K( G& ?( l, Z
. d3 @9 X+ u5 N, i#ifndef qdoc) b d3 x, U& ]
" h$ n; s1 c+ g# p& H" C. k P
namespace QtConcurrent {2 y" w( D. }2 G; M0 W
/ t% v, _8 ]1 [template <typename T>' S X F- g" I- L( i8 j
struct SelectSpecialization
" r2 x, K/ @# P$ n9 X/ v: ~{
: z! e3 p" d8 V# l' Q template <class Normal, class Void>
5 ?* a& k. H' a0 _% d/ F struct Type { typedef Normal type; };
, x/ l" ~+ J& ] l" Y};1 P3 |- B9 b: F1 }% a
% t" q/ x0 K) o1 w+ i* a
template <>
( r8 _- Z) m& Q Ostruct SelectSpecialization<void>
( W# ^3 H! s! _5 f' [+ `{" o: w4 o& q/ c
template <class Normal, class Void>
: |2 e1 G+ n: Q: a" Y struct Type { typedef Void type; };+ H, f0 s* b% U" y1 I
};1 F' @. o# R2 }8 U2 T& p3 V4 S
?/ V: N0 I7 W' t, J4 Jtemplate <typename T>
/ u( H) ]( t% }, k* T o6 R) pclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
4 A+ l# X1 q, N. e! `{; l! y( A. ^: w( B
public:
H5 u2 I, ]5 x# f; i1 k QFuture<T> start()/ R- U2 R2 [- }& H- H4 ^7 I
{( O) L+ `* N4 P# ~% ]. b
this->setRunnable(this);/ M. O! s; K5 S1 k
this->reportStarted();3 X0 p5 `* \* o7 f
QFuture<T> future = this->future();3 L7 }5 {# g4 p {. d
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);0 b2 R% U+ [4 @# [
return future;! I" b8 R8 v0 o# h6 a
}
+ X3 ]' V5 j9 C! [
5 w2 u. M6 O! R( ~8 r- I2 S void run() {}
/ b! S9 B1 |6 ~6 b+ u6 S virtual void runFunctor() = 0;
; w' Y+ }& p9 Z5 J3 B+ ` K0 C: {};
2 h7 n5 ~$ A, H( v' r, ]/ j* {" ?: ^$ v
template <typename T>
5 w6 A& ]& _1 J0 E) I# Lclass RunFunctionTask : public RunFunctionTaskBase<T>
+ D( p6 X( L3 {{
8 a# y& i! t( s* Vpublic:, i! Y8 `5 m0 r* w. a) E5 b3 B
void run()7 U4 j9 q8 p4 J) a. t# t4 K- D# z+ x
{0 o! @5 T& r8 _- _% R' O2 y3 o
if (this->isCanceled()) {
8 b9 @! \% t6 r* l" e% { this->reportFinished();
7 @3 I$ p8 c( v9 I return;
, {, J% N3 ^% p- f }
I) S9 ^+ [4 w3 e this->runFunctor();; S' G, |/ y7 u% j
this->reportResult(result);
, A# u( J! ], ` this->reportFinished();
5 m6 Y6 m, L3 t }6 a v& J0 D o9 S& r
T result;0 y! S# y6 q2 }& g) H/ j
};
& V$ r& j9 w4 x+ b
% F' C9 y m7 r& @+ }- a" atemplate <>
. O7 x% Y: C: |class RunFunctionTask<void> : public RunFunctionTaskBase<void>; ~2 l$ V3 D2 n0 i
{
6 W) I0 ~" k" D) mpublic:
' ^# x' Y6 }( s3 A void run()7 \ u/ I6 r! Q) K8 Y& H
{6 q+ e6 v& C! R
if (this->isCanceled()) {
; g2 N4 W k" ?& e+ n0 N9 ] this->reportFinished();# B$ c- d$ k& J3 G
return; L% ?" n/ V+ M- u/ R0 G
}6 [6 U: D' i4 {2 i
this->runFunctor();
: Z( h2 d2 d5 R" W9 Z0 U, a4 |" o3 S this->reportFinished();9 ^4 ^- Y2 g, _9 Z* w0 c& m
}
, r7 E' C( H+ |- Y};
4 s& o& E' m0 W- [# F* l. |
# t2 d) K* e4 `, Y( Q4 X} //namespace QtConcurrent' W% G6 y5 ^1 A9 ?+ w% _$ v$ h
( n+ a& t. ] G( Z1 O) T5 s& R
#endif //qdoc
) N) e$ I8 q! P) w8 H: k" A
1 @' ?: D* |2 F/ bQT_END_NAMESPACE
5 W* }# M5 g; `( g7 d+ m2 w: tQT_END_HEADER9 A& @5 y( w" X! G: o" i
5 P: H% s6 I: d$ D! ~( e% z( ~
#endif // QT_NO_CONCURRENT1 ?9 e5 H- g9 P' n% `6 s6 i& f$ Q$ S3 g F
@& p8 |$ w& o' N5 C#endif- K$ Q0 @$ e2 z9 `
% P) z! X$ q8 ~( X6 }* y |
|