|
|
我对syslink进行交叉编译到arm,但是出现如下错误:6 C3 }! R" x, Y) t, `
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: X# k3 O' z( P+ p. r' G/ z- W N- ]1 y* j q: K0 `$ J
这个头文件内容如下:
, d! K: M" J* X# n#ifndef QTCONCURRENT_RUNBASE_H
1 ~! |5 g. T& Y1 ]: ^1 `& n#define QTCONCURRENT_RUNBASE_H1 s V+ A8 K, A( m6 u. y
[4 G, t8 ]6 m. O2 o#include <QtCore/qglobal.h>" A5 [0 V5 @9 ?* x4 {4 n
$ y4 y- b, |1 p5 o b
#ifndef QT_NO_CONCURRENT
: H5 E' q+ Q& z7 O) T+ L M; ]. X, \( O" h
#include <QtCore/qfuture.h>6 U8 \3 S0 P/ [' i
#include <QtCore/qrunnable.h>
[7 z4 S, g* h8 `#include <QtCore/qthreadpool.h>
8 f+ G) b9 }( m) ^; i
# H5 m4 U$ Y( f' f- Q) ZQT_BEGIN_HEADER
1 D* j+ K' M, i, z; k% k5 R, eQT_BEGIN_NAMESPACE* S. F3 x! d u
- S! k/ C9 w! U" B# [; a; SQT_MODULE(Core)2 e3 n/ a4 o G2 }' N7 ~- h
4 F$ W- C* [1 }: `/ r#ifndef qdoc
: v( K# d5 }. k |
8 j7 D' `* E' M! onamespace QtConcurrent {) R% c2 k2 A8 X0 `
5 H3 H! Z# ~6 z1 o' W+ w5 e
template <typename T>
( a" n3 O Q& Z/ e+ Dstruct SelectSpecialization+ t6 i0 {) S0 z" Y/ B* @& X
{
. f$ b8 Q% _! G, N' I" o3 n+ U template <class Normal, class Void>) @8 ]& T$ W* W8 P1 j5 @8 w' }
struct Type { typedef Normal type; };
' i$ h) J% t5 H0 g6 k) a};
- |2 k! a# s9 F- x! O# b
3 B! [3 e6 m1 l1 Y; itemplate <>
9 R. C+ A2 _& astruct SelectSpecialization<void>
( O" P+ K% _0 ^% u+ f7 n1 E* ]{
1 D$ v3 d6 a& k e D' x l* J( v template <class Normal, class Void>, b( s' W9 L9 b% `
struct Type { typedef Void type; };0 W0 W" e- k+ I
};
3 N* A$ A. u0 q9 L6 J. Q
$ {. {; ?/ |8 N1 `; p7 p, ^/ ztemplate <typename T>
$ o6 P) W5 O( u i$ o( Z3 |class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' ?& U: Z `9 A: h4 M
{
7 \: x2 q' G; {public:
. g, [* |6 A# {$ C- q: g1 L. v- x QFuture<T> start()% z9 _+ P: i! w2 Y: d
{
& r' [# J& h0 b9 N4 Y this->setRunnable(this);( }& r6 S# f8 V" r
this->reportStarted();! t' F0 O0 _; y" z- S% S; I
QFuture<T> future = this->future();( B4 i! a( {' h: g4 s
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);1 U5 _2 a+ o/ j7 l$ J
return future;% U/ N- x2 \! m* ~- {% v
}
- e* @; m6 G1 @# J) F6 I7 l! k( g; S
void run() {}4 R v7 v) P; C) A
virtual void runFunctor() = 0;
) j; V9 ~8 W1 ?& p9 D: @7 C) B};. m- c$ g2 X4 @: B
! E) E3 A6 F8 l; c
template <typename T>! f; \9 b u- K4 t6 Q+ J4 [0 t
class RunFunctionTask : public RunFunctionTaskBase<T>
. ]5 J! C8 q7 [) W m{+ w7 u- D1 @' o
public:$ ^! n; a9 U% c
void run()5 n5 b) n+ D5 I( L5 R* ^2 b
{# A. e& q) Q5 a3 t: H2 L
if (this->isCanceled()) {6 K) b; ?% W3 @- {8 y6 l
this->reportFinished(); h& `- V4 d/ T* U0 d _/ }% _
return;! [; f. Q% t. Q
}
7 _. |6 |6 T F. | this->runFunctor();
, L$ U* e4 ?* ]" m this->reportResult(result);
# }2 X [/ g$ e# T this->reportFinished();
; c% Z5 j4 e& b! m# y }3 m3 U. {/ P) |; V% v B5 F' ~4 P1 P
T result;
" }& k% ^5 D. o1 U# T& ?: l8 p. Z. `};9 {; F- K* O' i
2 w/ J) ]8 z! o5 g$ Y
template <>) D! @: S. ~* Q [' k
class RunFunctionTask<void> : public RunFunctionTaskBase<void>" X% [. `8 a. C: L# m# B
{
2 X# P$ t/ m2 ]$ Y5 Apublic:" {- Z& s% l+ Z& u6 w
void run()! o1 ?3 O* z. n$ S" t8 x
{
/ ?: s+ c8 j$ X3 w8 m if (this->isCanceled()) {& }" _7 V4 L9 `& Q
this->reportFinished();4 R8 @5 Y3 \* M# x2 ]2 i- D5 \
return;& u* h" O1 Z7 x8 i: C& T
}7 H; d/ Z, H, D0 }, ~; f6 P: o
this->runFunctor();) P! _ G0 o$ g+ p1 p0 ]
this->reportFinished();$ z. k8 x& s: F; Z4 R: ?+ t
}
: G( N6 @* _; O* O, [};
& W. y! B" o4 Z6 x% o* z. E0 Y/ o/ @2 u
} //namespace QtConcurrent
; i6 I8 t& U. t+ M s3 ]+ q. ]8 e+ D0 R: f! n) s
#endif //qdoc
q, T- g6 ^5 @" e' x" g; U) s2 w1 y! e3 |/ b" Q2 B$ W
QT_END_NAMESPACE j0 ~* ~, u8 M! Y: o
QT_END_HEADER1 Q3 N" h a9 p( G
2 h( a& A: _; ?$ w#endif // QT_NO_CONCURRENT7 X1 P0 F! q2 c" h4 n
]3 g5 l' I H) j7 {#endif3 M, V9 x9 M c9 G: S# ^" M
) q5 @/ R' }1 L
|
|