|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ P/ O6 I- Q( \" \/ Z
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'+ t2 s6 b* o4 B. L2 c4 c
0 e+ M; D* G9 D* R8 o
这个头文件内容如下:4 F( B, i5 g) G5 d" ?( s: k
#ifndef QTCONCURRENT_RUNBASE_H4 N- k( E) c3 w- T( c# a
#define QTCONCURRENT_RUNBASE_H Q1 L. ^) j9 }' i! j" }3 n
8 e( t% ~ g" f7 P#include <QtCore/qglobal.h>
1 g& _& k/ }! J2 l7 m4 h. r
- Z3 h' Z8 t q#ifndef QT_NO_CONCURRENT+ _" {+ L4 y0 O* _. t d- u3 A
: ~+ K6 O! j) k$ E#include <QtCore/qfuture.h>9 d1 Y+ o- n- I2 V" x/ E* r9 {
#include <QtCore/qrunnable.h>
6 `7 C! W* I% R" N( ~#include <QtCore/qthreadpool.h>
+ c2 @' y+ s* e. B& j* k1 o" c5 w7 H; ~7 R. u
QT_BEGIN_HEADER
% _$ ~: B! Y5 f, `( tQT_BEGIN_NAMESPACE
. ~1 h5 u$ t. C: B1 A1 v
/ P9 B. m% D- V/ SQT_MODULE(Core)
" M7 v6 P- i/ D: a, m: M% `. y2 c" G+ D q$ _
#ifndef qdoc
9 y: k$ [* _/ ?; ~
, i9 [- }! C+ x+ tnamespace QtConcurrent {! c8 c& P9 q, N9 j0 D0 b6 _
$ Z5 N v7 ~1 k0 Ztemplate <typename T>
$ @7 m# g- l; w: C4 l4 ~struct SelectSpecialization
+ Y6 |6 T$ X% g3 [{
/ [' ?9 P1 g- H/ R( I0 z5 h8 i template <class Normal, class Void>5 N d$ [7 g$ d
struct Type { typedef Normal type; };0 e0 h. p5 P$ x( Q# Q+ a
};
, T( Z) I5 |% }, j4 d0 W: R8 }" L3 V* `# t$ W# a7 g/ X, D3 A9 O* I# N
template <>) i2 b! A- R( q0 R. E
struct SelectSpecialization<void>
' {# M. P$ D/ M4 K1 r4 _& B{- }: i3 S- o- u. y4 N% ?( J2 }
template <class Normal, class Void>6 K: I' M B& n$ Q& g' i
struct Type { typedef Void type; };
% t6 ?6 D6 u1 G* K* L};
+ P& T% e( m! R- w( x6 ]3 ]) H, |6 s4 G
template <typename T>1 i6 b% y. Z, d1 c
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable) `# r' C! @9 F- r4 P; M2 k$ [' I
{
0 \2 ^8 `, c( `+ p9 u4 Kpublic:+ d( p. C( B3 ]0 h0 i
QFuture<T> start()
# n4 u, y! @& f% [7 Y4 o { f, f7 }- ^, x* {
this->setRunnable(this); @ k# I9 Q9 l6 N0 Q& l! H
this->reportStarted();& A: X0 y$ }# @: b0 {! S3 \7 }# s% x$ ~
QFuture<T> future = this->future();- P9 R8 n% d. W* x8 o+ g( [, ]/ m
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: O9 b% R( |4 t& `1 w return future;
" p( x8 L5 P* P4 y }6 V" O" F( V. b$ ?& [
! C" g0 z& v K* @: \- ~
void run() {}
9 x( w+ ~6 K! K. c; |5 x6 i virtual void runFunctor() = 0;
% Q0 P% O" O z# l6 Q* y+ e};. e7 M# I S- g6 W) O
: e' {, n0 _5 gtemplate <typename T>
, W+ L1 q, d+ x4 d8 m5 Wclass RunFunctionTask : public RunFunctionTaskBase<T>( o/ _6 |! v1 u
{' \; a/ g. k+ Q
public:2 ?! m' {' Y$ |4 \5 @/ s/ p0 h
void run()
* b- D$ g) H' Y3 f2 F {
! B) Z! L- F& q2 b3 O8 l if (this->isCanceled()) {2 i% p. }" i6 O3 f0 h. o
this->reportFinished();' Z/ j. a1 c7 q& U1 Q
return;. r/ K/ q" I- p- U
}* f" @# ]8 `: ?* I j6 Z) J
this->runFunctor();" J! V/ A# `+ q0 Y
this->reportResult(result);
' M) S9 | d3 F* J1 U2 b this->reportFinished();
, Q+ D1 |! i) J3 o0 W4 w5 Q! c }
; @ ]6 a# \- ?% T& j9 g2 @( [ T result;
$ L0 y" N( `! J! Y5 F1 Y9 M};
6 K+ c3 U; r, ~: A
2 S/ H. i z! n' Xtemplate <>0 @- ?/ M/ o' H/ Q7 ~* d
class RunFunctionTask<void> : public RunFunctionTaskBase<void>: @) Q5 H7 u' U# {+ a: F4 |6 ~
{5 c+ ^7 `- z+ ~4 F/ {# {
public:
' x" G, s+ O, ]) f( |3 f void run()
: {. s, m! }2 N/ Y5 N% y0 `+ j1 @ {
. D- L) e9 W+ ` b- K if (this->isCanceled()) {
. {* Y o4 t* W, s this->reportFinished();1 R! n4 `' @1 d( e: ]9 @
return; P: B: e3 Q! {8 e3 V, h/ v" n1 K
}. Y+ C. {, N R0 e$ ?
this->runFunctor();
* ?4 o, b; N1 C" g1 O5 X4 F this->reportFinished();
' D& e* ]/ t- e6 S) _% G- Z }" o2 A4 j& Q1 T, W( h, A
};$ g( O' q& d I
$ }* I) ~; ~3 N( x} //namespace QtConcurrent& h5 Q5 W, n$ J6 J
( k9 e- B" N( c& e- L3 s6 j#endif //qdoc! x! n2 K! K7 V, J w \: K3 J; B' M
+ I3 U; V2 Z9 e; u- u
QT_END_NAMESPACE. {& S1 O0 X7 e! ?/ `0 z6 N
QT_END_HEADER
1 o( C, {& C7 d5 H6 u y
' W/ K. P$ }+ ]7 V* N#endif // QT_NO_CONCURRENT
9 h( U& G0 U- h L1 \% b) }/ L- d1 f/ K1 m$ b; C
#endif
" v1 D$ R- P' T* [. g. [ ?5 I- S$ f, O) }) V' ]
|
|