|
|
我对syslink进行交叉编译到arm,但是出现如下错误:5 O0 _, r. U: h& W& q7 B/ G3 c( c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'0 @: `2 A9 z8 b+ Y4 ^% x/ s# a
# \' M: P2 K! r+ L( Y6 \+ `5 m这个头文件内容如下:
0 Z4 I- M P4 t6 L#ifndef QTCONCURRENT_RUNBASE_H
" `) d- z( {2 ]9 J#define QTCONCURRENT_RUNBASE_H
2 u9 l: \" ?9 q8 r @
( x5 |+ _# j$ ~6 Z4 P, f. D#include <QtCore/qglobal.h>4 P$ `# {$ t7 r1 @$ p8 q) s; Z2 {
0 d& |) T4 x0 {: o3 F) i#ifndef QT_NO_CONCURRENT
Q: r/ }% }8 o) I# `' F8 t
9 `0 b2 R* r" x' Z$ I) c7 A#include <QtCore/qfuture.h>6 T% w3 P3 ?$ s- k* i. ~9 W: @
#include <QtCore/qrunnable.h>$ E& P4 A) u/ ^' k, `/ d F T/ \ h. _' K
#include <QtCore/qthreadpool.h>0 v2 j% l2 O& v& X- I
% P0 g7 q( d8 d( L8 {+ v) U0 |QT_BEGIN_HEADER
4 J6 ~3 ]/ `4 \1 w# P _( RQT_BEGIN_NAMESPACE
% m$ ~9 Y" d9 r$ ] Z- ^0 n- _% \
QT_MODULE(Core)' V8 Z2 Z3 z9 c- }0 ]
4 ^8 W; n+ I; G' q/ L: D7 i#ifndef qdoc$ X( p# a: ^+ \6 h. ]- B& p7 L
, U q: o- k$ p: g) p# |4 \2 F
namespace QtConcurrent {* A3 |) q. J4 N
! g- U! W1 O* @8 p6 n( rtemplate <typename T>8 j0 G2 t, V* z8 m
struct SelectSpecialization) P) q3 J9 U3 j" b5 A8 p
{+ Q( S Z( c2 D- j/ j
template <class Normal, class Void># K2 a4 X, ~6 p4 c
struct Type { typedef Normal type; };
6 \7 L) X- P8 d0 i};
' c' f7 Q6 x% k/ y) H) V* u
! R- C1 n" c' V. Q" j+ ]' V9 G8 x$ Xtemplate <>
1 [6 a- E, t1 M9 Xstruct SelectSpecialization<void>
2 I) Z \+ g0 d0 }" E% p: V{: q8 u1 _6 Q( Y* N
template <class Normal, class Void>0 J/ C9 B) G% c, _4 X
struct Type { typedef Void type; };
1 f5 h. U6 J4 [/ ~8 U; i};
) {% e% b' b8 e4 w" J
+ h7 P* _5 h) v: \, wtemplate <typename T>
1 k3 M4 B/ q! |; i! @: o: jclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 c0 M+ v( y! E7 W) E{, Y9 @$ N+ ?+ t @
public:
# ~, e2 J0 W! y QFuture<T> start()3 O; ~: b! L, h/ C6 z* O/ {( }
{
{: {& f% [2 Z6 x: n this->setRunnable(this);; c X, `# S A. ]
this->reportStarted();8 `1 J9 _, y* y$ u( M, s# _
QFuture<T> future = this->future();) {$ U- R6 n2 Z ]6 t
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);, p6 Q5 Q5 l) j6 E
return future;2 D! ]) H0 l; Q- l+ Q: |
}
9 T7 u* Y- P, x( G" @9 I, l# R7 ~' m5 u
void run() {}$ y2 Y6 I( V- L# N
virtual void runFunctor() = 0;6 j6 M/ X! o7 g: L, V2 w6 U( s5 l
};% h+ b- ~+ W5 ]* t5 f! l3 M
k' y# h3 @- \* a* }% ]
template <typename T>
" U8 L% i* V8 G' f' h& T3 w2 jclass RunFunctionTask : public RunFunctionTaskBase<T># j; c5 J( `+ S3 Z# ~' a/ v! c
{0 n$ R4 ?6 P5 |, A- K3 d& L; X8 ^
public:# l8 D1 n- S7 D N% D
void run()5 l2 b4 h: |, T8 z7 v
{" Q2 P& Q4 K0 W5 V" T
if (this->isCanceled()) {) S5 l6 ?8 E' W' [) q) E2 o# h
this->reportFinished();, A7 Y" v2 c& z1 V
return;5 b% R: |2 Z6 ]
}( T$ f7 j1 p# X9 d4 j: H
this->runFunctor();
1 d$ [4 ?7 B9 }( a/ o this->reportResult(result);
* \' P5 D T+ B4 j" j4 o' @ this->reportFinished();
/ |# ^+ T" s+ k2 i }
# D n# P2 |) B2 A2 Y9 X) H T result;( g+ w1 F% t+ Y, D! R
};1 }$ R8 G u. i" ?
% r# X3 [# h) I; J7 }
template <>- h& n: ^: Y2 ]+ u
class RunFunctionTask<void> : public RunFunctionTaskBase<void>- \5 ?# x( n% X# ^
{( ]4 ~' ]: l [3 g- N! W$ H
public:' \' G9 P! O, T3 g% D/ k+ {/ G
void run()
* F$ \5 i: d5 U# \9 J {# e* D. p9 T8 z. d6 ^/ e# [2 ?* O
if (this->isCanceled()) {6 A' {5 P$ |$ J/ F. G6 S
this->reportFinished();+ g" G$ | _' d
return;
/ b9 r# b/ Y. W }
7 b. H U) C5 ?, o# k this->runFunctor();
& D6 b6 Q' E; v4 t5 A! e$ x, u this->reportFinished();' S" F/ b! _! ^ |$ t# R5 }" e7 p# E
}
# P- _, }7 t. s' Y4 h};- J) Q, i# U* D3 G1 q: n
; \9 f7 a: V9 F- c. _9 m B& L
} //namespace QtConcurrent
+ x) S9 e3 t; R, A
; \$ D: B5 B9 y- c" b2 ?; y. z#endif //qdoc2 b# T* Y0 d$ }; g* B& B
R) v# b/ C8 P5 iQT_END_NAMESPACE3 x- a8 Q0 _. w8 S0 ]
QT_END_HEADER# F! p* @0 f& J E8 N, h& H. H- i& W6 d( m
; x3 F1 Q9 I0 Z8 _ A1 D
#endif // QT_NO_CONCURRENT
) Y# F" b# N0 p, k/ Z- A5 q
; p+ C( V! v- }. ?8 H3 s#endif
6 R0 `9 G: h5 r" _0 Z! n* B
, Q0 F3 D' ^$ ? |
|