|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ b) b/ F" V$ j& ~- q
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
6 [: G' L& c! b
1 I+ Q( t! [1 i6 W. y. k" g) o. O* g这个头文件内容如下:: ~: I/ L2 B1 o2 U/ @
#ifndef QTCONCURRENT_RUNBASE_H- g3 V4 y( n. F! F ]
#define QTCONCURRENT_RUNBASE_H
) ]" x$ E. ]! m9 H. b
1 K1 e' Z9 d5 }" G' o" B#include <QtCore/qglobal.h>) ` N9 P- x7 q- f6 I# V% `+ y
" S3 Y$ h% ?* }1 z) x3 Z- m#ifndef QT_NO_CONCURRENT8 Q5 e Z) `7 B8 z, @7 D% j
- | v2 `3 |. Z0 |#include <QtCore/qfuture.h>
# l3 e8 W8 \5 K8 z. z* c; _#include <QtCore/qrunnable.h>
- y; H v. B: n# I1 w" ?#include <QtCore/qthreadpool.h>
3 T) g/ g/ [) ]9 e" d7 v) G
* h: R$ c* ^: H% w$ J+ NQT_BEGIN_HEADER, C& U* A3 Y) m9 v: g" H
QT_BEGIN_NAMESPACE9 E) j7 W- ^! ]* m: q) S+ U
6 {. i4 \/ V/ BQT_MODULE(Core)
, k8 L2 z( ]9 l' S& m$ p+ A
3 ]+ k, V0 J/ C6 ?7 k4 D/ i7 C#ifndef qdoc
$ M6 I3 U; q4 L p1 j
/ R r7 w" L7 N: z& ] x( F5 @: [namespace QtConcurrent {3 M# G7 j. c2 s% `8 q4 c' P' {
# q0 ]; v( h s1 N2 ^( b. k+ {( N$ D7 T
template <typename T>5 B" `' ~% F, M/ F8 R) |
struct SelectSpecialization
2 z( j3 s& X) ^: v9 z{' x8 L. {1 F ?; o
template <class Normal, class Void>1 v- O8 O5 g1 D7 w+ o
struct Type { typedef Normal type; };
: v1 E# p8 U8 _4 X+ [- X: o};0 {& ]/ l0 q/ x* K, U$ X6 Y q
/ h2 I: ?( g* r0 K
template <>
! t3 l% W5 N1 r( B, [8 A+ sstruct SelectSpecialization<void>
; w! q) V3 G. h" g{9 e( H0 f9 k1 ]; O6 e5 I6 V S
template <class Normal, class Void>8 h$ L4 h* B) A- r3 z2 t5 a
struct Type { typedef Void type; };
2 x1 M3 M4 m7 Y7 G7 v. ]3 ^9 W};
2 n- v7 r6 k6 ]1 o0 P8 z
; m8 X2 |7 J; F% `6 I3 Xtemplate <typename T>
5 f' Z' ~- a4 S- j5 B$ Jclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 \1 b# [- t6 v, g4 o6 b{2 H3 j5 N! q) X* D! z) ^6 N
public:6 E; b/ h2 |3 _# |
QFuture<T> start()4 Y: ^, x7 U6 ?% i0 U R8 o$ V
{6 ^! a; x3 z! i ]6 G% l
this->setRunnable(this);/ T. p& Z# T9 O& i2 @6 h
this->reportStarted();
0 l. u5 c* G' s" Z QFuture<T> future = this->future();
& k- }! L$ k# C; a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 d; J7 X" g& B/ V2 E return future; P/ _% c0 {1 M
}
! H8 A- U* \/ B; ?" P
4 m* Q7 D) \4 U void run() {}
2 h. w1 e* O8 M) [' }7 Y! ~7 ~ virtual void runFunctor() = 0; ~+ M. {8 U9 C5 d) q! S% u% l
};
4 u# \8 |. `& n: J
- X1 K2 M; t% r4 }template <typename T>+ A" j3 i/ e6 }7 ~2 H5 ~* O. h1 N# Y
class RunFunctionTask : public RunFunctionTaskBase<T>
9 _- h8 L' z( P: z{
) l9 \# `; o, u( ]$ V5 Vpublic: [/ H+ a* g6 F9 r
void run()1 p. n4 R0 p3 S: c: N. P
{7 P8 ^9 y1 x( f1 g b- X
if (this->isCanceled()) {4 n- I% I1 A* N! }9 _5 [8 a- b
this->reportFinished();' F' @2 o: S" p! v
return;
7 I5 D* Z* b& f+ Z* p: N. v8 Z }
/ W" W( c& T( I1 y# V$ j this->runFunctor();1 `" K7 w8 D: e5 ?. ~+ f
this->reportResult(result);5 L# V+ q1 S x' D5 u/ X
this->reportFinished();
/ j4 f/ k I* u# H+ c }
0 b# I0 ~% N5 \) @ T result;: O3 Q% F4 `) O3 ~( {. y& w, J
};1 u! |7 T7 \9 Y/ ]4 m
) U. y/ j' S3 N7 {- S, R5 G3 D2 R' e
template <>
& u9 A4 e: B8 i$ Z1 r- F% k3 aclass RunFunctionTask<void> : public RunFunctionTaskBase<void># G7 Z' ^" B+ H% x+ Y. D
{2 u5 ^4 g$ u! N' m' B s3 I. j2 ?
public:4 i& V# K" G0 p! H/ j& ]2 ]! n6 m
void run()
3 q! H2 U) j8 L; J/ @& w& W {
9 g* x! @% _, x# B+ I0 E }# B- v if (this->isCanceled()) {
1 C. y1 B9 G" i* q; S this->reportFinished();0 Q) ?( e& Q& |" b7 S7 Q" x! B
return;
. ]; D! j/ U( ^ }
, E( [) N2 \, D o; C this->runFunctor();
6 ]- T3 ~& Z$ B0 f3 Z2 B w3 \ this->reportFinished();+ E4 h" V% r5 k$ L p
}
9 s6 L% l3 `, p# H, n& O& K+ G};
+ k' i2 U2 H8 W
2 h+ j. o- @! E: v} //namespace QtConcurrent) i. c# M7 c' k c. }" s
9 L! b( Z% J: ]4 H# c+ m' \5 e#endif //qdoc
: U; L, x) s5 d7 ?+ @9 n( U+ Z
1 p i( C2 P4 }: Q; GQT_END_NAMESPACE: f5 A& r% M, A: K, T5 |
QT_END_HEADER
4 h" |. L9 R3 p: A! y: N2 C! Q1 D8 ^& r$ j. g0 h" d
#endif // QT_NO_CONCURRENT: D! v# e" F4 H/ W6 t1 e/ I) I
! h2 [ A8 J0 e- N9 k#endif/ _8 R ~* ~7 Z4 E% u# m7 [
. E: ~+ A: z6 [ |
|