|
|
我对syslink进行交叉编译到arm,但是出现如下错误:& a8 N- t$ q! d% ^( A
/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 E- e1 t C3 \, J) b) ]' j9 }. ]
这个头文件内容如下:' Y2 a& H1 ~5 a$ d1 j; }6 |# |
#ifndef QTCONCURRENT_RUNBASE_H# X" f8 v5 e8 B+ m/ }
#define QTCONCURRENT_RUNBASE_H
0 J2 W# B" R, g- O, [1 x9 O4 o! P0 q+ n! L$ X
#include <QtCore/qglobal.h>
2 b. e$ T, m1 g) ]2 n: l( P6 Y& g9 f, R+ T0 \- r
#ifndef QT_NO_CONCURRENT! @* G+ {1 d3 d# u: Q1 o$ ?
$ \6 j6 B5 L F- ?#include <QtCore/qfuture.h>
5 ~3 ^+ L# d" `- k9 y$ T#include <QtCore/qrunnable.h>0 l2 H/ S# t) c Z+ D7 J
#include <QtCore/qthreadpool.h>
8 Z/ i7 q6 U( }5 d2 X' Y- N4 P
2 P. B: I; [( s2 k+ v: x1 bQT_BEGIN_HEADER
& B# \9 Q, w9 H% `QT_BEGIN_NAMESPACE* ~, _( m s. X" e
& R: d: A: U6 N- ]
QT_MODULE(Core)0 ~( q3 s9 s& e# F* |1 _. r6 ]
3 n9 u. p5 @6 n#ifndef qdoc
8 y& l' H) A- z) K% N
( n, C) V8 p/ T% knamespace QtConcurrent {( o; z. ?; H5 Q5 s/ k1 s
& _- s8 z, l2 f0 U5 O9 P
template <typename T>6 \0 G- `3 Q2 Z* ]" _/ A0 {3 W
struct SelectSpecialization
- w* s: m+ B7 u9 `, V6 i; T{3 f% V q; |: B* B& \/ r# E7 y
template <class Normal, class Void>
4 |: R$ f( Y; }2 h6 T8 X struct Type { typedef Normal type; };
3 u: S* e. W4 F" r h, r};
2 W% J9 g6 J& ^$ R% {5 E6 y$ b9 T& G. R, [$ B: Q
template <>
: P' J$ L7 ^6 J2 Nstruct SelectSpecialization<void>
2 x; y9 v+ M1 t. q{
# I% ?1 u& C' R4 Q template <class Normal, class Void>
$ j1 H9 {) q( o struct Type { typedef Void type; };
; R! \- G: j9 o. g; r+ p};
6 m% C' W; P0 g" d
, u c) i- r: T7 z1 ktemplate <typename T>
, [ S- F; L! I4 V1 m9 l, }/ Q' yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; b0 | g) e$ a2 n' z1 l! @8 V
{( ]1 Z9 j" o0 _) B% o6 v/ |
public:, p, j% w2 E1 b# s' x0 I6 l1 w6 }
QFuture<T> start()$ R! m7 E/ v) H+ H g
{
- t' t7 [* Z" o this->setRunnable(this);
2 @5 t2 @# c8 c5 S$ I$ X# `" ` this->reportStarted();0 d. r5 n. w, |) d
QFuture<T> future = this->future();
. `4 }0 w) A6 g3 W8 c- {$ P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
7 V0 E \" O j+ ^ return future;$ S4 x- R( e6 v k% d
}
4 S& `& ]* B$ y- V1 [% ]7 E M7 y7 N% \
void run() {}
; P# F8 `, u ~! d virtual void runFunctor() = 0;. m; L. Z7 T8 F6 M) K- W, t
};0 G# @( \( G6 V) [) J/ a- B/ O/ T! }
/ C" i, A$ [/ k4 f+ Y: |! Q! k$ W, `. S. ftemplate <typename T>
/ y* K, E m* v% b$ zclass RunFunctionTask : public RunFunctionTaskBase<T>/ b) f0 Q2 X+ |
{* K1 H9 ~3 @9 N" g
public: \$ u: y8 k3 }* D& g7 b: t3 G0 S; W
void run()* ]. B b( ]/ Q; | Q
{
. n5 v! R: u8 d- a, ^- e if (this->isCanceled()) {9 I( p- e' |! L$ C1 r- o
this->reportFinished();2 t: g) R* ?' x
return;
: B3 N M8 X6 o) Q! m }! S5 ~2 V; e4 J, s8 m7 o" h
this->runFunctor();) X! q# w7 u$ A E
this->reportResult(result);
8 c; ?( d* y/ \, |; i2 b3 \ x this->reportFinished();& G- ~2 q2 f1 s
}
) n3 ?0 A. w* I" ~* n T result;
( h% g y& u4 J7 h9 R% ~};. D1 E: v+ U: t
* z: ]$ n! I7 V( i& m- @. wtemplate <>
$ W9 p8 ^) \5 d9 @& Zclass RunFunctionTask<void> : public RunFunctionTaskBase<void>' m+ k, i9 T# t5 D) @; |0 x
{
6 P) P# k- G& P* W, c9 P+ upublic:
/ k% `; J* Y3 S void run()1 l u7 p8 B" q9 C
{& K# E5 O( @+ d
if (this->isCanceled()) {9 N6 p, I; l& J; a
this->reportFinished();5 k4 }. n: e0 J8 y6 p& t
return;# Y+ j u* H0 {. h) O1 S' @2 v
}
. e5 N3 [: Y) Z this->runFunctor();
; ]: _/ i; y0 n' w( ~1 T- ~ this->reportFinished();# H! i! b! M1 |4 R4 ?/ y' E. Z. Q
}* I' V3 P1 F p( k3 i
};0 `! V- K- l3 X5 x7 p: R# l( e! b
3 z/ d5 C& g6 H' N* J7 K} //namespace QtConcurrent2 w1 {, }3 G; t, E, u
$ S4 U0 _: ]/ l; _( J
#endif //qdoc; R" i! O3 {; b5 e
: c$ Q: v4 d) g1 W; N& m7 V3 k$ [, N
QT_END_NAMESPACE
- l( d) y% J( S+ _. FQT_END_HEADER
* d. H* ~ z0 k* p; z+ U# c- Q9 L) Q, b! _+ Y' N- S6 K2 f
#endif // QT_NO_CONCURRENT
* ^2 F. M/ p. v/ |: B+ e3 `
3 Z. c' U4 m" R#endif
2 T' o& W* l7 x
) @6 P/ _. G, N1 E |
|