|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
( t( I; R P2 _; m9 i0 ]$ B/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 d7 t k; ^) _& t, Z# e' m2 K$ J8 {1 a# X# r( i6 U
这个头文件内容如下:
0 o% }8 X/ i. V4 C7 c#ifndef QTCONCURRENT_RUNBASE_H
q% b0 M4 w- o. o2 l) ?" }#define QTCONCURRENT_RUNBASE_H4 F9 Q) r0 A5 u3 n9 X
2 H% N5 Q- Q' r' _- [- r( z
#include <QtCore/qglobal.h>" Z+ P. e1 g* t% w5 U+ r
6 l7 i! T# Y3 Q7 w$ I/ }2 h6 z. U
#ifndef QT_NO_CONCURRENT% a: J3 j0 _! P
- P b. {0 b* \" f% x#include <QtCore/qfuture.h>
3 b1 p+ L( l8 J* Y8 q: G3 j#include <QtCore/qrunnable.h>
0 B- E8 |% W$ D) E' e" o* ?#include <QtCore/qthreadpool.h>7 d8 R* E" L5 K$ Y
/ m! {8 v4 N+ GQT_BEGIN_HEADER
4 T( d" T- X7 ?4 d3 j; nQT_BEGIN_NAMESPACE
" e( A0 C# W+ E8 B$ g' ~9 A; z1 C; Z2 b+ j
QT_MODULE(Core)3 N0 k8 e4 F* U
2 L& G: m/ Y2 y" c O/ B1 C
#ifndef qdoc
9 n* b% u4 v7 u" |+ H: L+ n2 e
! ~& d& X. F, k) B; e1 cnamespace QtConcurrent {
9 O0 U6 V1 q5 C) a# I
) d: R2 s' P5 i2 ~5 Etemplate <typename T>
/ R- z% \# M& d: P! ? Nstruct SelectSpecialization3 W/ a, g! q* v' K# M( u; g A& P
{
; ]; ~% [9 k$ b) x. y6 P) w template <class Normal, class Void>5 X8 n# i5 V: N
struct Type { typedef Normal type; };. n9 }) O4 j# r* g: u1 \5 ~# k( M
};' q5 q# C5 G1 @4 B. \. {
6 B+ U/ Y/ d, i6 D/ z
template <>
# C3 W* H1 [ J0 T" [- sstruct SelectSpecialization<void>
0 E' `6 o. k U+ i: o{1 Q! l+ l6 \7 m0 |8 {3 W/ N3 c
template <class Normal, class Void>" e' Q' ~2 V( L& L
struct Type { typedef Void type; };
) R7 [/ }; t& J+ j/ k) \};' {. a3 H4 S* j5 Y- ]" T' k
6 k7 v6 n( {, U# Ztemplate <typename T>6 ~1 ]6 E8 E, ^5 |% l: q
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- s# u+ W; v( [ e{3 x, W$ V5 z) { y
public:
* x( k( C, r8 f8 G! b8 M& \/ @ QFuture<T> start()' _. J0 `# \+ c$ l) D/ Y
{
, i7 ], i5 q9 [/ M/ U; | this->setRunnable(this);7 s/ A9 P5 B8 L4 {" i# L {) u
this->reportStarted();- S2 r+ P- a0 O' E
QFuture<T> future = this->future();
' @+ ?. ~0 r; q, A" \$ a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);7 s/ E/ ?& F7 B1 @, `
return future;
3 w K; A4 S* u( T( c }
% z* @4 K5 q0 V' p8 [0 P1 ]$ h* X+ i. F! Q2 ^0 q6 y
void run() {}4 ^; N q" E$ C9 ^
virtual void runFunctor() = 0;
! B, C/ q& i5 y3 g/ W+ Z};7 a8 }7 A( `' q; R
$ U5 G! v: i, ?" t# M* E5 ?
template <typename T>
0 K+ }1 s5 ?( o- d3 l8 vclass RunFunctionTask : public RunFunctionTaskBase<T>
6 o, b3 n" M: ]7 R{
* b5 a4 u: ]+ e' ?public:
3 r0 D' m% V6 T& T, N6 \4 j void run()
7 S2 o3 I2 k) Q* `# T D m {
1 b B8 t7 ~' P0 s0 n if (this->isCanceled()) {% T/ @) N+ ?8 z; l! D3 n* q
this->reportFinished();
6 H7 W# J" ?5 ]! i1 i, X return;
6 \( H! K: h7 i' g+ \* e" j }
! I" i6 z+ A/ t7 O) i Y this->runFunctor();
* P6 I& q I: u7 d: \" ~ this->reportResult(result);
) D: n6 x( z8 I7 o5 F this->reportFinished();
$ A! L, n1 |8 ]0 e& L& E3 ~ }7 t, |/ H& V3 t0 S. t
T result;
0 R* M5 f5 j, ^ x6 T: Q+ ^1 r- [};
" J2 t, M0 e) y' a$ D8 u% x) `& A o& V8 V- V# x# i- l* O( h# P
template <>
T6 O+ b* r; ~2 M, T8 y4 lclass RunFunctionTask<void> : public RunFunctionTaskBase<void>8 N4 i W2 w. H9 h9 W1 [5 u2 D w8 p
{% q- ?) {9 ~; c$ k; q
public:9 u/ X6 h3 ?6 L+ t# E0 p4 Z
void run(), i E. X/ m( ~, R- q8 e: S
{) M/ s! _1 o7 r" R/ R
if (this->isCanceled()) {
}: z4 Z3 A$ f this->reportFinished();
+ t+ Q1 N4 C1 o, y return;( L( z6 C8 n; @ N3 x6 d
}
c# m" U/ {4 f this->runFunctor();
& a R( ]5 h3 `5 ~, d5 k this->reportFinished();# F' D A: C* W$ c+ |5 `' ]! J
}
+ v% X2 n' b4 K; g9 O5 ~ e6 u2 a" X};) s l ^. q$ _6 s9 {
% _% C/ s6 M. |6 E9 E/ O! j
} //namespace QtConcurrent
- ^/ d, @/ A: T7 d( @ {9 A: k8 u
#endif //qdoc
3 ~& d6 I0 \4 ~
( L3 A& C* B+ {QT_END_NAMESPACE
; o$ m+ K Y2 Q. H; h# nQT_END_HEADER
+ t# _; I4 K% n- M3 v9 ~
, a. N8 m7 o& I$ j! K! z, k4 y: Q#endif // QT_NO_CONCURRENT1 }8 V6 B- m; s9 X0 p
2 a- @+ F! s' h) j! F#endif' X$ O2 f" D+ D4 q6 T; [2 U
2 {3 C* C/ G4 o( v8 ?% p1 C9 a8 a5 I
|
|