|
|
我对syslink进行交叉编译到arm,但是出现如下错误:2 Q/ i g+ T. K3 R! y, U/ `+ _
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- ^7 @. i% H7 `
7 G2 O( _- A0 G, M4 y
这个头文件内容如下:7 d7 x. x# b0 h+ K% Q
#ifndef QTCONCURRENT_RUNBASE_H
# u2 S, ^+ @0 P- B6 B: b#define QTCONCURRENT_RUNBASE_H2 Z ]- a/ `* W
; P" n) e+ Q5 u$ K: Y5 ]#include <QtCore/qglobal.h>) Q( k" \8 j) z/ P5 E, W& ]
: U) E' z/ `1 r/ u8 x: }& ]
#ifndef QT_NO_CONCURRENT( P2 \, O: x) \" A- q' z
3 |( f" l8 N4 c& b/ c$ ?% T#include <QtCore/qfuture.h>( Q+ j; n1 c/ W
#include <QtCore/qrunnable.h>
$ P: A5 b, @& O4 ^0 ~ D#include <QtCore/qthreadpool.h>
U) b9 ?2 E0 |
2 S' O3 D& f% a& @/ C4 iQT_BEGIN_HEADER
- Q$ E* ?7 l) C; ~QT_BEGIN_NAMESPACE# o$ Z% C" Z# N
( q4 c. f0 r5 h0 w! ~8 W
QT_MODULE(Core)
6 d/ r s; `% I' |
5 I* ?. E+ P" g T) O. \" M9 e#ifndef qdoc, x6 d: R9 u. |! x
& b& T) T- \9 V/ c/ ?4 _
namespace QtConcurrent {- E. R x$ H; ]4 D
( B3 U5 Z1 L2 C" d; [8 ^* wtemplate <typename T>& l2 f% t. [. J! c
struct SelectSpecialization
* X4 Y! ^0 C3 Y9 u/ P7 L{% x8 x' c2 K7 G9 r( u+ z! O& T
template <class Normal, class Void>6 P' S H7 P1 M6 v
struct Type { typedef Normal type; };
4 u; I- y u2 F! y* L- w};
# U/ Y0 H; t3 F' i! P; n$ ?
7 Q' e C( ]9 G! j: w! U+ jtemplate <>& t; t: K7 I' Y6 u
struct SelectSpecialization<void>
5 D7 v/ l0 L9 A1 i! p" |# ?{
5 {7 T7 B/ ?' d# f% W template <class Normal, class Void>8 D6 |+ K, F) E2 F" Y" D
struct Type { typedef Void type; };; H) f! M9 \' \' N
};
+ O$ ^# R# b; x" X Q5 d: w3 F6 Z' c% V
template <typename T> M9 z( ` Z# C2 E5 N
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable: y) F" z1 o4 Y8 z$ o% g5 Q7 t4 S
{! }; E+ D( b! c3 K2 h* Z+ A8 ]' Y/ S
public:
: g* s/ a: y5 D1 a% ^6 N' V QFuture<T> start()+ R1 N" t' N; c$ X9 i- C/ Y; v# p. _
{
/ u" \5 Z' h p this->setRunnable(this);: O2 R* E9 m* `- Q+ h( R1 L2 W5 C
this->reportStarted();; B# Z; X/ O( e2 @) O: y
QFuture<T> future = this->future();$ m: P4 C) A/ U- E" k* p
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);2 \+ D3 Q3 _" M: e
return future;% B6 o7 d) Q0 z }/ {+ v8 f n- S' L
}
- q$ `- d2 Q. j$ Z/ ?: a4 A6 o) f2 |/ ?
void run() {}" L5 K1 Q- ?3 Y8 ]
virtual void runFunctor() = 0;
' C1 l& X$ [- u( m+ y; t0 g};
2 J' C4 m4 ?2 W
# r! P: q5 a- Otemplate <typename T>0 R/ j. q- t( j0 i- | z
class RunFunctionTask : public RunFunctionTaskBase<T>
: {- V0 q5 q& c{: [) D/ k+ u0 @4 i9 Z3 @" l
public:
& A# e1 @$ O* k void run() W [, y$ r+ k9 J* }
{
& q2 G$ w. r9 P, l7 \ if (this->isCanceled()) {
9 y8 y/ m0 I, ~% I7 Y" ? this->reportFinished();, X: _1 c" q0 ]4 @* z
return;
' z, A4 z& M9 f2 I }
4 Y" _7 t2 Y+ I. {2 i) C/ F+ B, z% y0 Y this->runFunctor();
$ G* }. K3 C# ^4 m$ i* @& U this->reportResult(result);. G, D2 D- j3 V2 ]/ w( s# `
this->reportFinished();
' l b2 l4 T; x }% z6 w& P1 n( t8 X0 N2 n3 A
T result;
' m" f8 w$ J* G+ N) p};7 `: T8 c; X+ C+ z
\5 f; L' B+ D# @: J0 Itemplate <>
6 J' x2 i% F0 M' fclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 S, y" A, k( x( l3 S5 E6 C{
b, f1 F, B; W bpublic:
4 i* m4 x/ s3 x9 \" H. W" E: L/ s$ g. X void run()) j( _3 b; m [: i6 A7 c' ]
{
4 I5 }- t0 E* M) g% y if (this->isCanceled()) {9 H0 p$ Z. ~1 G) S
this->reportFinished();
0 s- F3 M& M) S' X- G" m# k return;
" y5 ^& X6 Z: D3 M; O }
/ ?3 ]2 l) c; A- I1 L this->runFunctor();- p8 F) _/ d1 ?- I9 T) b! N
this->reportFinished();# V& ?- A2 j+ O2 i9 W' z% i
}
1 y+ d) ^* s% v" g};/ w j% n+ O2 u5 ^2 l& G% r2 |
3 s) V% H7 L3 Y9 {2 h; O+ _+ v
} //namespace QtConcurrent
2 |( M$ n! ]; _% C# p/ _ T- k- c/ E l3 P
#endif //qdoc
. X7 O& F/ I- x4 J" Z! D9 E
: E! i$ J- Z) C6 M j' H$ D1 UQT_END_NAMESPACE$ Q! \/ q: I" v5 w; ]
QT_END_HEADER
- \+ Y+ P! ?% \8 }% g' F
+ `. D4 }4 Q8 E3 Q# Z#endif // QT_NO_CONCURRENT# A, \' r4 E. l' |
$ z% j* O% R# F7 ?6 D) s
#endif$ p- f% ~% q! i( ?
5 c. H1 U& Y0 |0 H; P/ _ _
|
|