|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
; W* u! k2 X+ f v/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
* w* d' h7 b3 i o' j
, K; z1 c+ O" h, N6 v' F8 D4 O这个头文件内容如下:
3 H: q, ^0 u8 x/ A5 X8 g! A- A#ifndef QTCONCURRENT_RUNBASE_H
, t) _. w% _8 _/ V% p8 h* t#define QTCONCURRENT_RUNBASE_H
' J$ ?6 H$ W c( t% d9 z( R
; w0 c; o0 T5 e: C#include <QtCore/qglobal.h>
& o& G& y1 S/ W/ `: j; @9 O# L, @& Z
#ifndef QT_NO_CONCURRENT3 ]1 p: G/ m" K- ?! z
$ v i! R1 r# s* q; L8 u0 l# p3 ~
#include <QtCore/qfuture.h>8 o4 p# M+ L" t' i8 g
#include <QtCore/qrunnable.h>% K/ K# X" H- C7 N( h
#include <QtCore/qthreadpool.h>
4 B3 S0 Y4 }7 E
9 B2 b* I: e" Z! \3 S. DQT_BEGIN_HEADER! [ B! D9 I( b3 Y* |: {
QT_BEGIN_NAMESPACE
0 @6 ]6 O* v5 g( x& U; U
3 j: \" E/ T9 N, m" xQT_MODULE(Core)
/ |& f, A; @# X, t$ N
' [9 u& }& c z+ e# h- z/ v#ifndef qdoc. m( N& [: J0 x9 H3 }6 u
1 L) b1 |- q; W( z1 ^
namespace QtConcurrent {; I) c6 M' f- d5 ~/ v4 @
s/ T! Y! h, p( p$ e+ xtemplate <typename T>3 S# v7 L. V3 `6 w* A
struct SelectSpecialization
" f, x2 k- V9 }9 j1 {) A% o, [5 |{
/ Q9 a" [0 b5 B ~* J1 u* X template <class Normal, class Void>
/ D" R: l: Z9 R struct Type { typedef Normal type; };
& u. D$ t$ U& t& O4 g};
c6 e8 G h% p( z; l3 W$ @/ P% T8 @1 M5 O( \* Q! K7 M7 C
template <># ^7 t( F& B# @
struct SelectSpecialization<void>: i' q' i+ E: X, I% K! n8 a' F) Q
{
2 _" I( v- }! V9 b$ d) l+ K, n template <class Normal, class Void>
* I! |) X% l0 }" Q' w0 M struct Type { typedef Void type; };
& H4 i2 U- J. O+ R};4 v' a3 d1 _$ L0 o* U
/ Y$ F- R+ K# p
template <typename T>
1 Y: u; \, a" P0 F. a* f4 iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable* ?& K' T) s- f4 X1 l4 {2 X
{, c+ o) C# g' L; J0 p$ }. B; A1 K) T
public:
3 ^" Z: o2 _, }/ Y QFuture<T> start()4 G6 A4 X2 k# X7 `) p
{: W. p/ q0 F+ w0 ^& ~2 u; i f
this->setRunnable(this);
" {3 w& J. k5 x8 R$ L: ~ this->reportStarted();
' T$ j- X: V7 @- p' r6 j QFuture<T> future = this->future();
% V- X; m! f4 s1 s7 k" [) h QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; r- W2 M! _; u6 Z' R
return future;: f' {4 H" ]! P3 v# a$ T$ P
}9 C. u7 t% q9 w5 f
' X, E# o. W. v: I8 {4 N& ` void run() {}# z1 c( @' v9 \/ l
virtual void runFunctor() = 0; P$ ]8 q) D1 k$ ?5 ^; K
};
& | r' k& `$ N; U
% F3 v( w; l& g# r+ Rtemplate <typename T>( X, N% I& F/ M- n, |, X6 f' M
class RunFunctionTask : public RunFunctionTaskBase<T>: H, T! D# m3 ?2 s1 N% e, x/ n
{
! `: y/ l7 ]) W& D1 E4 Bpublic:
5 j3 T; [8 o0 A1 }. z void run()
c6 y' z/ W# g9 C7 b {' q. M. u9 n$ \0 L+ E
if (this->isCanceled()) {
g5 a, [) w _/ G/ u this->reportFinished();
& Y# b& r' w1 E6 `) Y return;
( x8 P5 I, L, U2 ~( |; Z }
% V. x; F1 g: k7 f S0 m, a' G this->runFunctor();
* K0 c7 v: x& { A- B8 S" Y this->reportResult(result);
: G( V% Y6 q! P/ h, l/ p this->reportFinished(); `+ V7 v, b6 ]9 o( B
}
7 k- C+ F: }) U5 [/ E% P T result;
& {; K/ J" k; b4 M7 B1 d9 T+ M. _};" Z3 W, s6 ?1 R H* M) X
3 F% i, X d/ |
template <>
) k" C& |+ [* R; r! V) S! K5 Vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>2 L# R) g% m: m7 j
{; F. k4 ~" h y! `6 I. C
public:
w( ~: Z9 ^% m! T" f$ w u% _ void run()" V3 p& C) ^+ k" o3 j: T
{4 G4 V9 h5 s9 b9 n9 T% ^
if (this->isCanceled()) {/ s8 H5 i. m. n" V6 x# Y5 k- ~
this->reportFinished();
) N, K) Y( s. h return;* _* c! H! {1 Z, K A+ V+ I2 Q* d) e
}: W# I S5 k6 j
this->runFunctor();
$ j# Q6 S- g U% }0 q this->reportFinished();
# a- K5 |" D/ k9 p( L }
/ a- n6 ?1 o! |( L$ Z& u- `/ U};' j2 l, c8 \, f* e
* S& ~- p$ [# J: ?4 j5 P
} //namespace QtConcurrent
6 V: @+ [, H) x* `, H. k7 u7 t F& L* G* D2 z1 D
#endif //qdoc+ e/ v0 Q' f2 _; F+ F6 x/ q
& p; Z$ T7 G# u( n5 L5 y6 qQT_END_NAMESPACE
3 M ~" p$ X" F7 bQT_END_HEADER2 M/ F( u' y0 o* D; m% B
/ x6 Z: ?$ _8 _0 e* `#endif // QT_NO_CONCURRENT
' n/ C' H1 o S; ] ^7 n$ K- K. h- G
#endif0 l! X% n+ e$ k7 _
7 k1 h. b5 S" J5 y7 y: }4 n! y
|
|