|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( l4 ]6 ]1 j/ n& C; V# y
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
( Z7 o8 w( Z: ^' z" ?) n0 C* [* S; c# y5 K8 C B4 U
这个头文件内容如下:5 Q# y @7 `; [* R0 A0 R
#ifndef QTCONCURRENT_RUNBASE_H \6 ?! e$ U7 C! L# p. |
#define QTCONCURRENT_RUNBASE_H( n. i* ~8 H& H- N3 R
2 m2 K# l* ]2 P# p: E5 _- B#include <QtCore/qglobal.h>
% C! x7 t/ Z( p8 ^5 c# s c# [9 I/ p) f8 O W' B
#ifndef QT_NO_CONCURRENT; J; K% ~; k4 B9 Q. }) t2 D
3 o' d; M: r1 i- n( p$ f0 l
#include <QtCore/qfuture.h>
- {% h2 B2 a, s#include <QtCore/qrunnable.h>
; E8 X# q: D' S. }8 z2 o#include <QtCore/qthreadpool.h>
5 T# c. x& M# Q, W6 H$ K$ b G9 U: H0 X/ d
QT_BEGIN_HEADER/ D( y6 {' m+ v# V
QT_BEGIN_NAMESPACE
( R. k+ h5 B, ]5 [ k& X# p1 n* Z
QT_MODULE(Core)! p+ c3 e; M, J" \4 N7 z ^# X3 c
- |3 |; E) f, [* g8 d4 V4 W
#ifndef qdoc
; m w" i6 W3 ^7 j7 g% |% J. i! t) k% k% B0 F# W, @% F
namespace QtConcurrent {8 N: y! l4 l. L* T8 }- o/ a. g
9 e( j' s1 u! L8 Mtemplate <typename T>6 ^) B% O' ?4 g
struct SelectSpecialization! j: x% L. |' z
{& Q6 z9 ^# Z, t+ t7 Z
template <class Normal, class Void>
) ~* o, t& P2 V; d: Q struct Type { typedef Normal type; };
- w, k8 M8 v4 {$ j6 S};
2 F, P; ~$ f2 O/ C9 A/ U. g/ W* p2 B5 o7 c: X- O
template <>* x4 O/ X1 i0 r
struct SelectSpecialization<void>
[# o: b Q+ k2 L{
4 v S# ?1 [. h9 T8 d ?. k template <class Normal, class Void>( g$ W, R" c, m# Z4 v! M
struct Type { typedef Void type; };
, d# W) ?2 s. f2 G7 N};. ^ I1 d( j2 y- m! E* t
9 d0 P; M7 q* B8 p4 f, S! ]template <typename T>
% L7 ?+ w0 a% E, z' H* t( i7 oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable* o$ T1 U$ q e% E' a
{( r+ W+ \$ U/ f% O- `3 p
public:; D/ g6 p" c" a) L; R, H
QFuture<T> start()
# ]/ o' S5 R0 H1 n$ h" ` {
- S1 Q) J2 j3 ] f } this->setRunnable(this);5 {! u1 e) P q4 q5 d
this->reportStarted();
0 L# Y0 G/ J2 f QFuture<T> future = this->future();
2 ?4 t% F7 p' L QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
$ n$ r/ _9 ^0 q7 x' ] J return future;; b- \. i6 |' C
}
; v u/ L, ^5 \0 F: c2 h0 Y+ Q5 Q7 ?
void run() {}. w8 g4 }( m, b% C; M
virtual void runFunctor() = 0;, }" H; r4 q( X) u# x/ b! I
};
( W; ?$ F0 d" K) {* R' Y
( q( d0 u# `$ h& d' K/ M2 utemplate <typename T>
9 K6 v: b2 D- @# P6 Sclass RunFunctionTask : public RunFunctionTaskBase<T>
' `- ]5 V/ l' A1 S* L# ^1 B- l2 ^{ N. \: l3 \0 d* V' U" N; Z6 A" y' i
public:6 {8 d4 t8 v% S. s/ @0 B6 f/ }+ K
void run()
7 y h% ^( T# M; G: n, U {
8 \2 p8 W+ f' E8 T" E1 ] if (this->isCanceled()) {
/ ]9 Y* E. G: O. {, J: L! B0 [3 Q% y this->reportFinished();# \( K* X' f8 B4 R, D
return;2 m5 f/ ^* ~* r, |
}( D( C$ b2 c/ r3 f
this->runFunctor();5 O9 A* Z8 ^8 @+ c! {9 h
this->reportResult(result);7 m l! m! H3 I/ n+ k: c. ]" S$ h6 f, }
this->reportFinished();) N' k. |$ G/ n) v; ]
}2 `# Q" q8 | u$ X
T result;
" K6 i- ]+ A0 [};
3 g1 Z2 s3 `/ S; r
2 [( \1 O2 v4 Etemplate <>. Z/ F; H) `& [0 W
class RunFunctionTask<void> : public RunFunctionTaskBase<void>/ z, M _! D3 h; s; n n' W- s7 r
{
/ F6 A. Z) I5 D' U$ n2 b( Spublic:; I. J/ V2 X+ x* V# x+ ~2 Y/ k7 C% {
void run()# O% D6 j/ a8 j2 @
{$ W' |) }% Y5 W1 s
if (this->isCanceled()) {
9 X; ?3 p8 q) m# c5 g3 R# Y this->reportFinished();; q! t$ L9 f! x
return;
# D) A6 [( n3 r! | M c) Y$ k }
3 ^6 S3 ?$ B# e# ^ this->runFunctor();
( J8 |0 z7 G5 {1 K' N8 c% \, k this->reportFinished();
2 L% w5 g, [$ i% ^ }
+ p+ N# E; O1 P. F. ?};/ V0 w. w) L& L" p& e+ i
- a" R0 q, F' F# E4 |. a
} //namespace QtConcurrent: e2 y% z" i9 A! d6 N: n, Q) s
9 o) F2 Y f: W) D& K6 o- c1 B
#endif //qdoc8 {8 h5 Y9 z& i* l5 t1 E
/ \) d: j2 s: mQT_END_NAMESPACE
) ]/ K' }& U, B3 W" I8 L0 WQT_END_HEADER# X: o: `9 \' e) [7 q1 J4 P
1 c: N! ]- H5 K7 k5 G7 E#endif // QT_NO_CONCURRENT
0 u7 T' S+ u( w0 E. z5 F$ N V" w$ C/ H: n, D3 z! ~' h
#endif
$ F" F" I8 p0 Q1 ], v4 `6 c- G
- j. Q5 G# M# U2 S; ~* d$ Z9 S( N |
|