|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- ^7 I! d0 [3 a2 Z. N P
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
6 N& ]: f4 |1 W4 Q& @! r& ~- F3 m7 R; n1 B& M {) w! @; o/ X! `* L r
这个头文件内容如下:6 n; ]4 j5 L" M& P& O
#ifndef QTCONCURRENT_RUNBASE_H" g; d* R$ o. s( B( }/ `: J! V
#define QTCONCURRENT_RUNBASE_H9 r L5 O8 y, P. p+ u# c
: t. { I; i" C# I4 P) t/ [4 D: |#include <QtCore/qglobal.h>
" k/ U% v7 h/ g7 [ M/ D) q- Y4 I/ h+ U5 O5 ^
#ifndef QT_NO_CONCURRENT/ h) R0 V7 K1 W/ O
+ f# u- j* m9 l) z. \. I0 m$ k2 m#include <QtCore/qfuture.h>8 U' b5 @5 P9 y% B" y+ O4 ?
#include <QtCore/qrunnable.h>& S& B% g' W% y6 p
#include <QtCore/qthreadpool.h>" `1 L7 Z; D: i) D7 L8 s0 B4 y4 z
; A+ x; j* B. U8 IQT_BEGIN_HEADER& Z" i% |+ ]9 N' Q& x# j7 }8 q
QT_BEGIN_NAMESPACE/ a1 C1 g! M9 Z/ p
' H/ |' P7 e5 I$ |* k5 iQT_MODULE(Core)
2 l. Z: U5 l: J( o7 K
( h" ~" h3 A% K" {2 c# _#ifndef qdoc# `7 a5 w( V1 {! V. u H
. t' e' x5 o8 R' y
namespace QtConcurrent {" C( D' G4 ]5 |3 c
3 c" F. |5 Z- y. {) [template <typename T>8 ^+ {2 J) l6 i- j; o9 S, y" e
struct SelectSpecialization& z1 U8 @. {+ X! j$ a! t; V4 B4 u
{1 x/ e9 `: H) v( k
template <class Normal, class Void>' G4 K/ k4 Y& G7 p; g
struct Type { typedef Normal type; };
, O. t8 U) R% u$ J3 T% R. ~};
% ^ Q1 p1 S) u3 z. y$ Z& ]" g2 p
- ^2 A, K4 G8 o# p+ Otemplate <>
9 P$ Y1 c6 i0 c) T) Wstruct SelectSpecialization<void>
3 s% D6 B/ J% \3 [$ E2 U& v, q7 |{) A* y2 A6 r' ^2 G$ j4 i9 b: q* n
template <class Normal, class Void>
4 @0 ?+ {, n) Q% \4 C# u struct Type { typedef Void type; };# d' [& X' N/ v1 q# d' r
};
8 R5 E+ r- p, a0 v, [1 n) C; M" ~6 z, @. \/ d! z
template <typename T>
9 i+ k! o& T$ K/ B2 Hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 S* \# O* m/ _8 W* V9 x* q{, ^9 f* }% H3 n) b
public:
* g" [/ d6 n9 B# u! ? E% a2 ?1 ^ QFuture<T> start()
1 g1 z- L# Y' B, P7 N- D {: I( X4 E! Y( ^: J
this->setRunnable(this);! f8 C! B. h. T: r6 ?8 b9 u
this->reportStarted();8 |/ ` e1 |1 w
QFuture<T> future = this->future();
: F( i7 I3 d) Q8 ~6 q: x QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) |$ C, I- C0 N: t" z4 C
return future;+ h" y; T: u! C( Q
}* L+ F1 R) B5 X/ I& g: f
$ s1 u% M; P& l4 g
void run() {}
% q; c% [: @7 m9 z6 N4 m virtual void runFunctor() = 0;: I* l2 s9 B+ Q
};! D& j, R: ?7 N% D7 E# ]1 D
1 Z& D4 b9 S0 c5 A% ntemplate <typename T>' a1 w# j. Z$ ?8 ]
class RunFunctionTask : public RunFunctionTaskBase<T>
1 J t4 G5 s. X6 r1 h{
& U3 o6 X$ @+ r$ `4 \+ }public:' }3 T5 H) J7 p6 Z& g/ x
void run()1 r9 i. E) t7 C! F8 b9 C. L
{1 O- H9 [+ C" ~# u
if (this->isCanceled()) {
0 P* |1 B# k6 t+ i this->reportFinished();! Q2 s9 q, y8 Q0 v9 @$ V
return;
1 S3 R: d) F3 F0 G' X% { }
8 y) i; g. y7 @ this->runFunctor();
9 t. K6 Y% ~6 B3 Z2 I this->reportResult(result);
) d! c* ~1 E7 o E/ p% f this->reportFinished();
+ E3 F/ U" N/ E. E* L }
! X2 R; E( o" j( h( q6 N T result;
# k1 Z3 {5 ~1 a6 @; k};! M+ N9 o9 M+ A a
9 D1 W6 V$ N$ \4 w v* U! ] ztemplate <>" J$ E: q7 k. s3 g
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
0 |2 I, t/ G' F! v{" d7 Y& v; P( E8 R4 Y
public:
7 h' c. S- l$ ^; g: s2 U o void run()
" R0 S' y x& r* P' I1 K {
! _0 t, F |5 |( |4 o( M5 {. d if (this->isCanceled()) {9 Y6 x6 L1 b3 `& w! V( Z
this->reportFinished();
5 v1 E" A/ I/ C! u$ V return;# y- ^3 k' T7 s! [2 P( I" f1 ~6 f) x# L
}& h" d4 i: ~0 [7 @( u
this->runFunctor();
" Y. {( m& }2 G0 w: j$ v( ]9 k5 l; d this->reportFinished();
' r0 } ?; \7 J( j3 k }
$ d7 I# h6 i! z; z};
B% z6 l0 {% z( \
) z7 Y" m+ d4 z6 d( q+ I9 S2 E} //namespace QtConcurrent
. l+ y) L5 E" D7 W3 F: Z4 |( ~1 u) h9 B6 F H3 p. z! f1 L5 W
#endif //qdoc
) x V. V) _1 H. \, ~2 Q( U; I' J3 r5 y4 |
QT_END_NAMESPACE
. G5 J/ D% d$ O& i. oQT_END_HEADER6 v3 Y6 Y0 G1 a% |
9 u, L! P( U! }, W$ {5 \#endif // QT_NO_CONCURRENT
- o+ ^* E- \# o1 c. Q( p8 K4 L6 j$ c5 E5 s- k( N
#endif, X5 H8 v4 e9 [& c4 ]
# c! M# E, |8 Y$ @# V1 i- s |
|