|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ J6 p2 b" S9 p, p3 g
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
5 s+ l+ _5 k$ R6 H, s
/ o1 L |0 ]# u% R& U1 m/ C3 g0 T+ S这个头文件内容如下:
Y3 a/ H) Z2 F3 j' g& s. N#ifndef QTCONCURRENT_RUNBASE_H
1 ^: r1 {+ J: o3 B5 w7 [/ L' A#define QTCONCURRENT_RUNBASE_H( b; L$ R1 Z$ p( [2 |
1 q2 n& F i8 ?) y* c: T( V2 r
#include <QtCore/qglobal.h>8 {; E) z0 }' v
) @6 E/ Y9 j/ L# e3 _4 ]#ifndef QT_NO_CONCURRENT
. n6 _9 j' O2 q+ c5 _) P
3 ~8 K4 h+ J. l+ b& F#include <QtCore/qfuture.h>
j9 m+ y8 a! `#include <QtCore/qrunnable.h>
' X0 _: _# N+ b#include <QtCore/qthreadpool.h>$ i; \3 E' x5 x
8 F5 R$ i+ A9 Y% o% ?' JQT_BEGIN_HEADER) R- f$ w0 y7 z
QT_BEGIN_NAMESPACE3 b/ z0 }* i7 e2 J4 H
# Q6 X4 [5 g/ MQT_MODULE(Core)
7 \( z: ~5 T7 Z" x6 F/ p/ f
2 C. Q$ y0 |# \4 \9 D) U1 J#ifndef qdoc
1 D" M: J+ ^% d4 i, j% i
6 I( E* r# c8 R. K) {7 h) hnamespace QtConcurrent {7 g0 b+ z' q7 e. ~
$ R5 y' ~4 N% c n1 k
template <typename T>
) R- p3 E2 b$ q( h( Mstruct SelectSpecialization
+ ^8 }: p J! F& i0 ?8 u{) W/ j# b' n7 G. R6 y
template <class Normal, class Void>
1 r* H& R$ a# v8 x+ b9 n; m3 F' s struct Type { typedef Normal type; };
: i Q2 `* ?; x% r. ]. w};
- g0 t5 g, g5 W
7 P! b! W) X. utemplate <>4 Z; K0 u, w/ k9 K
struct SelectSpecialization<void>. p u7 P7 m) m \
{4 |. ~. Q. x) v* U& S
template <class Normal, class Void>
- P# X; ]* X+ j2 z5 d6 Y struct Type { typedef Void type; };
5 W- \8 q) O; a- G+ u; M; T};
- h6 V: P, @7 Y5 H1 |+ l$ l0 k6 I$ d- a
template <typename T>4 W/ E1 g- s! `& e- y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 z5 J8 }+ Z; d4 s4 M/ A: l, o{
0 [8 M5 l1 K, H# S$ d: J: Wpublic:
6 C: l( q7 `6 E4 b2 ^& }! h QFuture<T> start()5 c* `3 i, ]6 L) c8 z
{
" b0 {) W. ?( l1 s2 a; A' R this->setRunnable(this);
# H0 W. T9 G; P& z- A: i this->reportStarted();
+ W. H4 W7 d( r, o1 P* _ QFuture<T> future = this->future();
7 J+ O. r0 B$ E- u QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" u* v( t6 _+ O& i" ~ return future;6 z, C7 n8 H0 q. [: @5 L. K
}
8 G0 m& N# u% Y. d* y" ]' c. A% @( V/ S: {5 u F& w$ ]: z
void run() {}
6 \" C. T+ u h0 F! d: t virtual void runFunctor() = 0;
) q2 u7 z2 q- _9 k$ S. J4 A' ?: i7 L3 N};
3 U: Z% a3 G/ A6 _, j, R! K! A' L( j9 N. v
template <typename T>
3 L. t; v K3 B; v$ nclass RunFunctionTask : public RunFunctionTaskBase<T>
9 D3 }0 H. X3 p; X{
^# @, P, P) O7 b+ }public: I! Y# N2 {% N( w7 h1 X
void run()2 q4 b8 i/ o$ h% P9 S
{
% s8 {5 }& U/ E% [! k if (this->isCanceled()) {
& l1 l' U0 X- Q( T: U& a7 x5 a" T/ M this->reportFinished();: ^) w( K5 n7 r$ {( d# q# {6 i2 q
return;- H/ ^ w! l z
}. [7 h5 |/ g0 s3 L1 A
this->runFunctor();
: u$ F; M# Z9 p7 L this->reportResult(result);" J9 `0 w* A! [2 [0 }3 f
this->reportFinished();1 k; d8 f0 a8 s+ ]4 z+ I$ _% F& k
}
( `: H& D- l1 S+ U T result;
! A$ V7 ^) B1 ]6 }};
9 y( X3 ~' g. v+ m0 j6 W6 x" Y' g# i' E- o9 r/ ^* d
template <>
2 ^" k2 Z& T% \8 B. Mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>; V! C: z# `5 ~4 W5 @0 I u
{
- X: F" d. Q/ k# cpublic:
+ N/ a' ]5 D8 `4 e+ h8 p( Y% ^ void run()
* z; P4 ~& @0 y" o {
/ [2 \% d2 L% Z! ? if (this->isCanceled()) {1 E4 e2 q; h# D# D" Z7 Q" ]
this->reportFinished();& B4 v7 v, F: T3 I7 V: j8 x1 j8 B
return;
, @/ Z5 C0 \2 v3 s! ?5 C4 ` }
" Q5 ^! b' E! x, q this->runFunctor();$ ~ U: m4 J& F
this->reportFinished();1 I. l. m2 f2 ?$ Y
}( l: ~! t5 O/ q+ i& @2 `$ F* l
};
4 \7 u5 B" v/ k5 T y6 J/ O3 Z1 |( {# l8 n7 n+ e
} //namespace QtConcurrent- d, T: o/ Y0 ^2 W7 v' K
2 ^# z: C/ G6 g# X5 _& Y5 ^' R. d#endif //qdoc
" {. A. E; I/ |* V
/ @, X6 b# R. J t# ^; @% w( _2 ?QT_END_NAMESPACE- k Z3 f8 Q/ G* Y3 h7 ?! i
QT_END_HEADER- T, C0 |# I2 y( }: K
9 p3 M+ n( F2 _0 E. d2 [! s#endif // QT_NO_CONCURRENT
5 H6 x# H4 Y, A7 I i% Z, a
" F: X$ Q. p4 y. o$ h1 q) _#endif
7 I- q( v( Y4 G- @9 z) k" D7 f# y+ K7 G9 |) K3 Q
|
|