|
|
我对syslink进行交叉编译到arm,但是出现如下错误:1 `3 w7 ^2 t$ k$ e% o
/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 S% E _# e1 t6 v9 L$ b4 _ d
* i1 U! }4 s8 o D7 p
这个头文件内容如下: R2 p6 a1 Y/ L1 F
#ifndef QTCONCURRENT_RUNBASE_H8 a+ J3 W; ~8 M' ?7 O& m
#define QTCONCURRENT_RUNBASE_H
, A: ^! S( u" x+ D
, Y7 V% M. ~; ~9 x+ C+ _% B#include <QtCore/qglobal.h>
+ h3 D/ R; A) F4 Q( s" Y( c/ f! D' Z T
#ifndef QT_NO_CONCURRENT, g0 n5 b, G4 u) Q8 I- T
) y/ Z# L6 Q% U/ @9 L5 A" B2 k0 O
#include <QtCore/qfuture.h># J* v7 r# o/ Z, a* D7 T
#include <QtCore/qrunnable.h>1 ]1 X% l7 ]. @1 |+ ]$ d( I
#include <QtCore/qthreadpool.h>
7 K7 t& i6 ^2 d# E. X% W! j0 v7 m: v* r6 z
QT_BEGIN_HEADER
. ^; }" B4 {6 A* r. K% }QT_BEGIN_NAMESPACE' @/ t; |% x7 n/ v
o) g9 D' i- Q/ r
QT_MODULE(Core)+ y0 A0 q4 h* q' w: I
# b8 o( y, b( U, e! c#ifndef qdoc
6 z) w0 @' R% F# ^1 F; r6 u1 u/ Q2 F. \8 O2 |! T2 L
namespace QtConcurrent {/ l8 b) i0 W; J1 K6 R& g: r" i- r5 J
) `" p# I. n2 R5 j
template <typename T>1 I U; d. s( h. o t' L p
struct SelectSpecialization
$ U6 ^& _7 m) O3 }/ v0 w7 R7 g{4 C; |. f, B8 P0 U4 h
template <class Normal, class Void>
5 I; c7 c, x z) b! ~2 V struct Type { typedef Normal type; };
3 c8 f) k( R4 O};7 ]4 r; k% h! D+ D q+ X
( p- S4 R5 {& C9 I0 l
template <>, x. ]5 w0 u1 x- q
struct SelectSpecialization<void>: j5 s3 t' X6 e& Q8 q1 x5 l- }
{
, a: z2 U+ _: N+ L+ P template <class Normal, class Void>
& N E/ d9 t* [+ l" j struct Type { typedef Void type; };
. r# e8 j7 O4 }: D5 u" x# D};+ q( Y9 S' o0 I0 B4 s0 A
$ t% |, A" Y! P) W9 V0 _template <typename T>
- c8 B s! \: Y# r5 ?class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ S& C/ U) Y( y( F8 }
{
. R6 [1 `, o: }public:
: L/ b: D5 }' c6 l QFuture<T> start()
$ h+ Z8 Z& ?: ^; n% R {& g" s' s+ j4 u* R0 D
this->setRunnable(this);+ e, Q' O6 k4 i1 y" D7 |
this->reportStarted();
. E1 Z9 @. |7 y% o+ z QFuture<T> future = this->future();
- n, Y: t* u7 b% w( d, Q I5 a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);1 D: _- T5 d$ \" P+ Z; T2 W
return future;1 @% |" t l# g5 q
}
. Z, q$ w# J: R8 y% e$ n: n$ u
0 p* I0 S5 v2 m, ^ void run() {}
* J1 U2 F4 s( \8 y6 w virtual void runFunctor() = 0;! X+ \. h' p/ _, y. ~& i- M M
};" E! j8 T( K+ x F* y
K% W% u9 T& t/ ]0 `
template <typename T>
. m4 ]7 I# M; ~) Rclass RunFunctionTask : public RunFunctionTaskBase<T>
: d" M8 C2 Q/ ]& d) Z{# e6 \6 U, e, L" R0 A; \
public:+ {) C% l$ X# P# v
void run()! Z/ T) l7 f7 n
{5 V, L1 D, ]" \( |$ i2 ], u
if (this->isCanceled()) {6 @5 V1 J9 c7 T" N3 F0 p
this->reportFinished();$ y* H0 G: d$ f$ j4 |
return;
" E0 b9 U' W+ P/ V2 F3 u( @1 M }: B) G7 F* \% [# Y# [
this->runFunctor();
" y6 y: ?4 ~& ]. M' U- Z2 Z9 G this->reportResult(result);
! \2 n. o" V" C2 A( J3 {7 o this->reportFinished();
; I& m* n1 ]2 U }5 E$ @* t( [. k p
T result;
! E6 y' R9 r( O/ b};6 ]2 ^* X1 v' ]
: S- n: Y& o! V7 u; `( `0 Itemplate <>7 p) t0 f! S" U
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
( c ?9 V& g n/ f+ N; {8 z, {{
0 n% ~: p; A( L$ h9 l& E n8 a: Spublic:" A, i! n5 z( J' `
void run()" x- G, l$ `- ?1 C
{
* \; v' z* ?" o# B4 J4 ?) Y if (this->isCanceled()) {6 y8 r: v/ q/ s, e ]# c9 D
this->reportFinished();3 N- z1 u9 F/ E$ g- ?- G
return;/ f5 F5 Y$ g, E6 |0 {4 i; m8 w
}
( f7 Z% \9 F, A: H1 t- K" K d this->runFunctor();. d7 I8 Z0 o4 H) E5 V( s8 e: V
this->reportFinished();
" d Q6 m' L0 t% V, p% G+ H }
9 S: ^! L9 [ e; j5 z1 C9 k};
& \: W5 o+ h) u" o; M
! ~$ q5 n1 V6 }0 c5 R @7 |} //namespace QtConcurrent6 i0 `' `0 F+ m+ X0 V
& {$ ^* g8 H- t5 m# ?6 R#endif //qdoc: g7 ~8 i0 q, o* Z4 f
; b# q( r4 x# V/ A/ c0 n# [QT_END_NAMESPACE" c% D: `2 h( o. W5 r7 ]0 Q
QT_END_HEADER
" c5 A5 g' E! {) x$ {
# a' q6 |) ?: J8 ~#endif // QT_NO_CONCURRENT6 H, t! ~# M' l3 w
8 W- o2 t5 C: p) _#endif8 F/ P9 f) ]# b; v! G" p. l
6 f' l: H; s B! s& C. z4 f; e
|
|