|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- o1 F: k/ p& G& `. @
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
9 i* x: l1 G- M! u
% j/ X; q, p/ {这个头文件内容如下:3 s% V1 T: Z6 J9 Y
#ifndef QTCONCURRENT_RUNBASE_H, j3 @ M" h/ I' w7 @, V
#define QTCONCURRENT_RUNBASE_H
/ p% Z5 e% S# [+ O6 [0 I4 I7 o' I4 T$ z1 U a5 |7 S
#include <QtCore/qglobal.h>
1 B6 o5 i* v9 h3 ?/ F2 r( R8 M
: i2 T+ |& w# o1 n8 [& B& {#ifndef QT_NO_CONCURRENT
2 y4 U8 g/ [, _+ F5 S, R8 L& D; a: N* c
#include <QtCore/qfuture.h>3 p% L n+ Z7 L* M
#include <QtCore/qrunnable.h>
" j- l. A0 D1 m' V* p2 t#include <QtCore/qthreadpool.h>
/ s: M) D: k: c, W' A- ~4 ^. Q! m8 G! d" `. R8 _% t
QT_BEGIN_HEADER6 r1 r, }- Q9 w7 G/ d: w$ U% z
QT_BEGIN_NAMESPACE1 _( S. G* D& E7 x. @
; f/ o0 K! z3 ]9 o8 O/ Q6 l2 aQT_MODULE(Core)
2 I5 s# i2 n" g* v" @4 T# b, _$ [2 M* k4 j; f6 k; Q% P
#ifndef qdoc% Y# a- y% ~' [/ z
9 ^2 u3 s$ G% hnamespace QtConcurrent {# x1 n x9 {3 K% F3 d$ q! E
_) @% U7 q# Y+ K: Q$ p+ v
template <typename T>
9 n1 t. O2 l8 s. [" ^struct SelectSpecialization
! Y9 j' m& L+ ?) j( D2 V4 p6 r{
- o7 x# @8 ~+ x, K* M& x template <class Normal, class Void>3 f" u2 d6 B% y4 V
struct Type { typedef Normal type; };0 I0 S' Q9 M+ |; [& R
}; Q) g! P4 |4 E6 R6 l+ L
4 g9 G+ K1 b! @5 s; ^
template <>% e& q9 a( I$ ?, ^) r! [- a
struct SelectSpecialization<void>( ]. |7 F% r& ^$ z/ `0 }
{
- Q" Y/ s/ P( M% i9 S4 s template <class Normal, class Void>) R* V: L9 F5 G. t% j; Y
struct Type { typedef Void type; };4 g( S! J& L/ O# x
};
5 t4 o! H4 P9 U. i/ s. L
/ A k6 f( S Wtemplate <typename T>+ I- A# X) m5 w
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' D+ E' o2 k$ C: [! n* g+ a
{6 H; n, y8 k5 I0 ]6 k D
public:
2 U) W1 c/ {, Y- T0 a8 _ QFuture<T> start()8 i0 C: d* n4 F2 d {
{
# [$ w$ ]! \0 y' m& I! E this->setRunnable(this);" e% _) o. _9 T. g0 S$ n
this->reportStarted();$ [1 Z9 w7 y, R
QFuture<T> future = this->future();* N* S- s; c0 q
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; x' [/ E, b3 t9 Y0 G- L8 P return future;
; q8 ~ q. d9 { p }( s5 P; d& k/ z% P
6 W8 l( ^ Y9 L: M1 ~( P A0 s" |1 G0 ` void run() {}% `6 l- f& w5 {6 t: l+ F0 y
virtual void runFunctor() = 0;/ u! ?1 n2 f `0 q
};
) E; U" {% i. t' \9 L" ~5 m1 s5 F0 K9 _- c* z
template <typename T>; a* q4 ?& d% R: U& g
class RunFunctionTask : public RunFunctionTaskBase<T>! `2 I% Z$ h9 c1 e" ?
{
& u( l6 H* T/ t5 \public:
; c. U2 x$ C2 E; d8 N% n0 z0 b, S void run()
0 _+ q2 G' [3 R% t8 J( H0 f {
, e, q( j, ?, X2 v9 e U Z* C4 g if (this->isCanceled()) {
; ~. p4 n q: d7 F( b: O this->reportFinished();3 h% _' r9 N2 D3 C3 ]4 G
return;4 Y2 ]# S' ~8 m: ~7 q
}
9 z0 `/ T4 c7 m9 ~ this->runFunctor();
- ^5 F! G d) ]5 k this->reportResult(result);
1 _9 L j( Z5 f( J6 H! e this->reportFinished();: c0 T! i4 v7 e: V( g1 J0 I3 h- a
}6 {0 R# |, Z7 D
T result;
/ M: \6 l9 O2 @* i" a};
, W# L: Y6 Y4 L# s$ `) \: ~" d" F+ ?) N
template <>9 w" l! I, N6 |5 l7 A! ~
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
2 @: M9 L% T4 {1 d6 G. H{4 N5 K. I# L! W8 R% c0 x
public:" ]" ~! B3 i2 `7 \5 S. f# ~
void run()5 y! K: D2 T2 Z; N/ O& @ h% ~
{8 y% m: H( Y; x! f
if (this->isCanceled()) {
* b& a7 ~ L6 ]& B7 Y& Y this->reportFinished();0 `4 ]' q& w% [2 y0 s
return;' N1 ]7 D6 B3 N0 s
}) @2 O! ] {; R
this->runFunctor();* ?6 _: O- N( l0 U# p( p
this->reportFinished();
# k7 \2 Z) n/ I" x5 F/ p4 a9 F5 I }
" M8 U0 [. Z6 d};* V4 B0 o& F; f- `; j- I* Q6 F% ^7 L
+ Y) `9 Z4 c' k! F0 H% I8 E! N} //namespace QtConcurrent {8 N; K! z' o3 T. |, D3 D: o9 c
) f" x' ^5 i& J3 k* y
#endif //qdoc! L# t9 f: w" g V9 ^# r: i
) w7 G, K, u/ Z. J% @& cQT_END_NAMESPACE9 E; R0 [" A+ ]+ u: N. o% s
QT_END_HEADER
4 |, y; |! ]' N, f, f$ |6 d7 m: F# }& T
#endif // QT_NO_CONCURRENT
% t; \; s( P6 g) W0 E" n+ I; y
#endif9 F8 M2 x3 \% ?: q0 j
4 @$ Y6 C/ l% I! `+ ^ |
|