|
|
我对syslink进行交叉编译到arm,但是出现如下错误: x! R" Y) @5 k5 b. m) f 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'3 C5 `9 h! e2 |( f( J: q' t
- P3 z. U8 t' B" q8 [9 y7 Y2 \. Q这个头文件内容如下:' ~5 A# l, ^$ ~6 \0 r! }. n$ u% F
#ifndef QTCONCURRENT_RUNBASE_H; O7 V% v7 y8 W3 \3 b
#define QTCONCURRENT_RUNBASE_H" K0 L; h- J- [8 P4 O
- j, R2 \7 F6 r+ Z( m$ Z
#include <QtCore/qglobal.h>' Y- |7 g' S3 N9 n4 U2 R
% t! N7 W- a* v
#ifndef QT_NO_CONCURRENT
4 T: n' n& ^0 k& s6 D# u5 k
- x/ c% e8 ~8 a" S, c/ ~, y# z# ^( j#include <QtCore/qfuture.h>
& [; N3 N% X' R4 r' V$ g4 I#include <QtCore/qrunnable.h>
0 E, U# b0 A! O6 m( p" A" c6 m9 d' ?#include <QtCore/qthreadpool.h>& Q3 y! K$ t" h& `* ^, C% e/ d0 |: t
1 A7 {& y* {) q. M9 dQT_BEGIN_HEADER( B9 H/ n9 }, O/ m+ V+ y! ^
QT_BEGIN_NAMESPACE
3 U5 s5 v. q1 W7 a( L0 B% b8 n% ]. w- j- \
QT_MODULE(Core); F7 {/ E, T5 M! B! {5 _: c0 q0 N
) ^2 `) g3 l8 \9 T- W
#ifndef qdoc* F4 O9 f/ }: b& {, {6 k' p% [
+ T8 t8 @% H" X: D
namespace QtConcurrent {
! \" u, X9 i# [6 g
) k+ b0 I; }: D/ u+ O0 O5 ?; T& htemplate <typename T>8 K: ~6 ^: t: g8 F$ r% b5 m1 d
struct SelectSpecialization
* Q9 `# ]1 @" I) m' c{
6 a1 @" F$ \! ]0 a( ] template <class Normal, class Void>+ x' j1 v- p% c! f, _3 R+ p
struct Type { typedef Normal type; };) p, N; L8 Y6 Z5 a
};
5 i J5 \; ?0 D) h) Q% i% J
g" l% F, Y4 ^6 Btemplate <>
& E5 |6 Y0 c7 R! i7 B7 K; J2 ^struct SelectSpecialization<void>+ z: o8 n8 Z3 @ B/ I2 _
{8 u Q X' _* ~1 I ~1 C# O! V
template <class Normal, class Void>2 u; U0 [( y4 D# T% V" n7 X9 H
struct Type { typedef Void type; };& E: Z* K( K8 ~
};
- i; }1 O/ j8 \4 l8 b: ~4 B! j- d- \) x5 t( Y8 ^: M" j
template <typename T>
- D, o) X) m$ m; Q- mclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. D' H: F; z. C
{& \/ ]2 Q$ W: A0 k
public: L, [- H- K+ z8 [& M
QFuture<T> start()
$ {" K" T( F/ O3 m g9 J0 O( Y {' k+ c! R' y* d- S
this->setRunnable(this);
: b8 h* ~. C( s- Y: v, d: f this->reportStarted();5 l' k. J. D2 L$ x
QFuture<T> future = this->future();
3 m( ^$ E) p: X& Q% t4 R QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 z! J' I7 t2 c- z, ]7 C7 I: t return future;; b; b4 K" j9 s- E0 m
}
$ W( C3 }* e" w$ u) z! S
' q9 [! F/ w$ r a void run() {}0 g( P7 M6 ]) X8 Q( D! w
virtual void runFunctor() = 0;) U5 G$ X; E9 B+ }
};
5 \! Z q0 A- v& {9 D+ X& k5 E, Z0 z
template <typename T>
; Z$ R- K( i, _ F$ \1 e' b- xclass RunFunctionTask : public RunFunctionTaskBase<T>! I0 U9 _$ ?1 ]! Q u' C e
{" e+ h) i+ \$ K
public:" Z4 U4 ]% O4 |' _! h. C
void run()
4 \. ]; S) s: F. \7 I. O/ o! e; x/ ^% h' N {0 X0 H2 X% F6 c4 d
if (this->isCanceled()) {
( X% h0 j1 ]1 I! p this->reportFinished();
" z. g( h6 q7 O. |8 E$ R return;
2 B5 V$ j3 h: c8 {0 I }2 |# c8 w) F- T8 {" `; H
this->runFunctor();
& R: H. n% k2 w6 S/ \# e this->reportResult(result);
8 w! F' |2 T/ D2 U0 a; B this->reportFinished();
* }: d3 ~. Z& @8 @ }
6 Z* _1 V* G& i2 }) Y% w( D T result;3 Y; n0 D/ J f- ^
};
8 G X# N5 Y) D& P7 r) c0 d
: I; ]3 W( s6 h3 `0 jtemplate <>* o0 k4 g7 @: W
class RunFunctionTask<void> : public RunFunctionTaskBase<void>( k' s% i0 K4 T
{2 ]# h" Q" d0 I' R% m7 _
public:% V/ v; t* d/ }" ?" u0 u; x6 T
void run()
# Y j; L' s# K1 p7 D1 s {
1 W& t6 Y4 `8 w. F, u0 y# E5 E+ A if (this->isCanceled()) {& R5 I" e# H4 A# |+ n
this->reportFinished();
+ u8 ~# ~: z6 h1 J7 v) j6 C5 z return;$ H' P% n6 c' I% X1 ~2 K9 G4 K
}
# n* d: j& ]0 X9 I this->runFunctor();
; u2 O I) I% b( e/ X% p8 B this->reportFinished();6 e" E# A4 M' k$ `$ d5 G3 J( Q. Q
}
" M( S/ w( ~# u7 F( z2 G: O, }7 v};
# E7 |) Y5 v$ O9 N* ?; w. N# x# e7 ?* c
} //namespace QtConcurrent: q6 j7 n! j( [
" M# J! _9 o4 ~" f
#endif //qdoc
3 V' W; X9 v7 e1 {( C2 M
3 k m: A# _6 m. ^5 dQT_END_NAMESPACE& ~9 L) v( _% p
QT_END_HEADER
$ L' f7 t2 \2 ?+ S
9 q5 K0 x F4 V7 G#endif // QT_NO_CONCURRENT4 z/ ~0 u2 | Y3 H5 s8 R. X
* [( V/ b* W" Z1 q( K! ]* |7 c
#endif
0 D) }& n* Y; W! ^* n) G6 Q5 N! y* m2 y- f" E% I6 j2 I4 A
|
|