|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! `8 N" l: \ k N- R
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' A; \; k! E( Y x0 a* ^
8 [: T8 M z0 }- b5 {4 {这个头文件内容如下:
* v$ r6 q/ D4 I: D7 v( p/ \#ifndef QTCONCURRENT_RUNBASE_H
; q5 w/ R7 N$ h- \6 c( V#define QTCONCURRENT_RUNBASE_H$ b- H% X4 I+ L$ ?: b- t( x s# E
& b6 N2 Y# W2 K8 g
#include <QtCore/qglobal.h>
@) l# [' g8 P
5 z& f6 P3 h7 c. [0 E9 V8 H2 Q8 \#ifndef QT_NO_CONCURRENT
# ^9 E0 Q6 ?2 z# c
9 o# d( F' Z+ J; I#include <QtCore/qfuture.h>, v, s% P) q% O+ N% U9 U+ B8 x
#include <QtCore/qrunnable.h>
" L4 @; O: L% ~0 ]- u+ e7 L- V#include <QtCore/qthreadpool.h>3 G1 ?* h9 Q" a) [+ g
{8 A7 d& X/ x9 \& T& b$ j
QT_BEGIN_HEADER
+ [9 Q4 s; ]' B/ O( e" ?, P) \QT_BEGIN_NAMESPACE+ A* g w" v; k0 z( ^
9 T, z2 v) x, N8 GQT_MODULE(Core)
: Z$ q1 k( d" D3 ?+ m" R
$ T/ m8 d1 R) f5 z( k#ifndef qdoc3 s$ \, G- ^: I" b( |5 D
" a# {1 B. z/ X0 n/ R% {
namespace QtConcurrent {) i- w4 X5 X* A. @+ q
5 B) O$ h- _9 w1 E2 wtemplate <typename T>/ D2 V; `( N% Y' T" @: \
struct SelectSpecialization
1 Q" U% e( q+ a8 c8 V8 F! F{% y# u6 Y4 y4 s: R0 j
template <class Normal, class Void>
) `: V9 S0 H( V0 Z m0 r struct Type { typedef Normal type; }; [" u1 v# e+ l5 V! P% s/ f, Y+ \, f
};7 \ Q) N- M) P- A1 K
; a) g% K2 b1 B% [$ qtemplate <>
% z$ b/ A$ n5 f* a+ Z7 c Fstruct SelectSpecialization<void>
* c8 X% B; ^/ d5 r{
9 c ?* `3 d; \0 m w) h. j$ L( } template <class Normal, class Void>
9 _ X3 D+ |$ v7 E0 [* z struct Type { typedef Void type; };
5 o$ @1 ] H+ N( F) ~9 v};+ x9 y9 C/ I& w _
1 k, d" U; X8 c4 k9 f Y) E
template <typename T>
; i" O$ L& H4 O" v3 fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 G* ?" |4 ^- S3 x. G{
* P' g; k h' l0 @1 s5 k9 \public:
$ U l1 s! a* B; q QFuture<T> start()
7 E& j. p1 o) x z$ X* [0 s: t' X/ w {
; X {: k5 [2 Y% ?* _! v8 a% ^ this->setRunnable(this);
2 y6 y2 L R. L' v d! K: q' { this->reportStarted();; O* F& p! G6 N% `( ]
QFuture<T> future = this->future();
/ ]9 e4 s) K& L( B QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);5 ], J" L: ~- `
return future;
2 {4 \' D; \) o5 B0 H( }/ D9 R8 x7 ` }" u& N8 i$ t# f6 U
8 v: ~% j! w/ _; F% X; U& D& ~ void run() {}! p5 J8 o$ c3 H
virtual void runFunctor() = 0;+ N* B; h9 p* A2 ` `, K7 f
};
2 b) Y# H o! y2 x# e! V |" T' b. R0 M. K! L$ X6 J8 Y
template <typename T>
0 D: G* P N9 a" L: \ g7 y9 P- iclass RunFunctionTask : public RunFunctionTaskBase<T>
5 A( H: N/ m5 u; @) F' M# ]! u8 G4 |{
7 Q( Q4 y5 b9 cpublic:# ?" l2 o2 L6 j" _4 \
void run()
% w& n* r' C z- s( _ {
1 ~8 v. U" m/ P+ I' O. d7 n+ B+ S if (this->isCanceled()) {1 G0 o4 {, d, I% V; c- ^
this->reportFinished();" s# A* U8 ^* y" w0 s
return;# ^9 u G+ u$ ~
}
: U6 c3 d; O- o. B) z) k0 W this->runFunctor();+ d7 L% g5 y2 c
this->reportResult(result);9 V2 C* }; l7 E$ e z. V1 ~% W. x
this->reportFinished();1 C9 R8 |+ i( y5 Q
}& R: x% G. G2 q7 V1 M, u3 e
T result;2 G- l' E6 S3 Y3 ]
};2 C, x1 A& {$ p6 r
( K3 T& T5 x8 _; L, f% _template <>
$ x; Q" A) E' k! Bclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
" `' F; H! P9 i" \& j( i# v/ j{
, |; O: O. @. j) x7 kpublic:
! k2 W' A$ b7 |6 g) v4 e void run()$ \$ z/ J4 C% `! w; v' q
{, }% E. _* W# U+ z% P
if (this->isCanceled()) {9 C/ ]0 K7 ? X" r
this->reportFinished();
( k5 b4 J+ t& {, K return;
; J J& f7 {, [) v$ S" E }9 w# I3 C6 Q; H
this->runFunctor();
$ T2 J7 k0 p+ j/ x& I this->reportFinished();
6 d" n; |5 C5 c }/ {+ [/ y8 z- d% t
};
1 b3 R. e& g! b. Y' T* J3 \& M8 S$ J" V' x- H6 K( z+ J
} //namespace QtConcurrent
. `# u: A2 [ g( d9 m9 k4 J9 S( r4 ?) V6 _ H3 B; y* t
#endif //qdoc( L9 C$ n1 t' ^* A6 n6 P5 [% V- W
8 X3 N0 [6 B) f" d2 s' f* y% [QT_END_NAMESPACE
1 j+ ~# A! z' f. T0 M& vQT_END_HEADER4 s( L( d5 z! A5 M
5 l3 z Y* Y; J/ z; V
#endif // QT_NO_CONCURRENT
" q' w* ^' r3 M' I$ H; k0 g- p- [) @" |9 w: u( b
#endif
7 d0 R! A% r4 A( d/ b9 Y% m
0 B F$ Q! i& ?. V7 y) P |
|