|
|
我对syslink进行交叉编译到arm,但是出现如下错误:0 @2 N$ j/ S* s+ |
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
5 P- {* F% ^0 r2 d
/ u) u' g! B/ ~3 P" x3 L$ r) ?这个头文件内容如下:* Z' g$ v9 O, O- a: R e- a; p
#ifndef QTCONCURRENT_RUNBASE_H
% E: `0 X/ W( K+ V#define QTCONCURRENT_RUNBASE_H/ n+ e% X0 r# Z' e7 K
1 L- B* u/ M# [
#include <QtCore/qglobal.h>9 M- B" i( @! a/ n: l+ r/ t, Y
3 Z0 `$ m( w3 e, u- l+ H; o
#ifndef QT_NO_CONCURRENT F: C3 V9 w, ?! o! T' a v2 E( m4 o
, d `& r8 Q) f9 v. @! b P8 w#include <QtCore/qfuture.h>8 N. ?0 C H* o: h f3 G, a$ n" s
#include <QtCore/qrunnable.h>7 H/ |0 p+ @& u
#include <QtCore/qthreadpool.h>. d3 g/ Q; S2 \. K+ K3 X
! C4 |/ e& ?2 ?. k7 M
QT_BEGIN_HEADER" h( x' _- T7 N3 O1 Q5 P
QT_BEGIN_NAMESPACE
6 ^6 t3 F( X+ G
9 r6 O$ k5 H6 n/ lQT_MODULE(Core)! `* b, E; x6 I) v
1 a0 L: f& Z3 U) J
#ifndef qdoc) B# O, C0 m; ] A& I
) O6 |" S4 U" r! W& O8 F6 R
namespace QtConcurrent {
5 l" \6 e9 e& A# R: p; r0 R0 a4 i$ m* e
template <typename T>% q: x1 V4 y0 t' a
struct SelectSpecialization3 Y- b2 G4 _# U
{- i5 C+ k6 \4 s; s9 h/ ^6 \
template <class Normal, class Void># e4 a& i3 S8 E8 F# b. s
struct Type { typedef Normal type; };1 p; l- b1 a- J) ~. N" `: E7 i# R
};
" g! `, x' P9 p1 T4 k( Y! k
: B/ K9 K" @5 R- Y/ [7 ttemplate <>
1 v2 z( p) {+ w$ b6 astruct SelectSpecialization<void>. a( \$ R* s( }) }; k
{
( q& _. B7 z9 e' i template <class Normal, class Void>
) l+ p. L* Y! g7 | struct Type { typedef Void type; };3 G1 P" r3 Z* j+ e4 g
};, B- k/ u* t1 v5 ~, z7 T
! @1 t) O% h8 y0 \- H- d
template <typename T>
. \. R0 s/ t! m2 y" V; u8 [" ]class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 L' d, ?) z- Y' I$ M) o* L
{
7 `; y. K3 F( @% |public:& z4 e. { n0 t5 S( a
QFuture<T> start() k0 h: a8 |" C x$ t/ ~8 R
{% C) S% Y1 t: N5 A
this->setRunnable(this);" g% n# b& ]% {! `
this->reportStarted();
3 n, {$ V" f# u; X. W p QFuture<T> future = this->future();
5 i3 y! G1 v# q8 n" o; K- v QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( [" K) L Y; @4 \5 A
return future;
3 m$ m3 P1 R% J7 P }+ G* z7 ^* a+ D3 J; y
2 k+ N, U& \; w5 w$ P
void run() {}
3 ?/ y% R, Z, q& |7 x% a. d virtual void runFunctor() = 0;
7 R) F3 R, I: O) ^. w1 s3 }};" o: G( x' V7 n; I u1 w( W x( n
2 L# c" d3 h) C& b& C5 u3 u3 q3 f
template <typename T>5 I G% X0 N% |( g( E2 N! T
class RunFunctionTask : public RunFunctionTaskBase<T>4 t& j1 T; n* p: }) q& ?
{6 x# q2 Z5 F& [
public:2 `1 m6 H. U: d
void run()# H8 I) G1 P+ e9 ` p' l& `
{
3 _- _ D- z5 H5 q if (this->isCanceled()) {
; |# x' h% c' j* J- p! E, { this->reportFinished();
" r! _* `6 b6 C5 Q% s3 [ return;
6 w3 ~/ I4 Q" X; G( K. u+ o }' P0 P" g, S6 J. z2 }
this->runFunctor();
) u3 p0 Y5 x2 P this->reportResult(result);
2 c- d2 f$ v) m. I1 a6 ?+ B this->reportFinished();
' t+ Q9 H0 O$ ~- q }
6 X* Y* l& G7 M) a8 Y T result; i! K" B, D& e, j
};: _$ v6 t8 w/ n; Z9 O
* Q, Y/ S: ]5 H k7 M9 |. Utemplate <>
* N$ D% m) ^: R4 ?/ ?class RunFunctionTask<void> : public RunFunctionTaskBase<void>% s. x. C! R# C8 N
{( }! l7 S: `# b6 ?: x* B
public:+ Y' a7 i& C5 d0 F
void run()
) u1 Q" D+ F: W0 m/ w) E1 N {# p- T* j0 p7 J+ ^* G) z6 e0 j
if (this->isCanceled()) {
' h# ~# L: _9 W' P3 \ this->reportFinished();
1 `3 V4 Q( ~' Q/ u return;6 i3 Z( D/ e& J7 P9 n2 q
}" [( `! t9 o: ]6 l9 b) q7 P+ `
this->runFunctor();
R2 O/ U/ j3 i4 A+ K9 E% Q0 D3 T this->reportFinished();" a' g' ~5 o( _
}4 \9 I" @9 h& C2 j& k- k+ z
};% [, j* w" v5 z6 J' S
5 a4 T: C, u+ d} //namespace QtConcurrent
+ ]2 @7 b- u9 t. J3 |* ^2 l
* y* g3 I# o7 {. y* W/ Q#endif //qdoc$ |- W# T# E7 h* B' @' S
/ O" k5 C* K+ d
QT_END_NAMESPACE, [; f1 g7 Z9 R3 [7 F2 n5 N, Q {1 {. F
QT_END_HEADER( U5 Z/ }2 E' ?* f
/ m- ]. b) o. t3 j$ X#endif // QT_NO_CONCURRENT/ b6 v+ `! y' y( J7 G- T: y
' |$ c% q$ Y6 _% U- N& B! V
#endif0 a( l8 M5 B; v" c" p+ \
8 ?. O/ _* {7 N |
|