|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
* C7 O _1 d& S/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'3 k# p* ]+ s. O: g9 x) }! m2 E, G
' C0 t4 \9 s$ n! f这个头文件内容如下:
: K# V2 ]* x# Y* L#ifndef QTCONCURRENT_RUNBASE_H! B k5 D O0 O! U3 _ R( d1 m
#define QTCONCURRENT_RUNBASE_H l# y& G% D; t
9 v! I# u) `9 f4 o' r- ? f% X
#include <QtCore/qglobal.h>
5 @9 L6 X. r0 v7 z( K# |7 K$ Q2 ]0 P' M* Z4 K1 x- J
#ifndef QT_NO_CONCURRENT
$ o& E8 u! x$ X$ ^, ]0 ^( \" u
0 |/ }( b! Y3 T: @' y4 i#include <QtCore/qfuture.h>- t* p( d9 ^6 M9 ^. d. T& @
#include <QtCore/qrunnable.h>+ _5 l }' F6 g4 ~2 l& M! v
#include <QtCore/qthreadpool.h>
0 e) P8 l5 Y6 X, |# ^. L% a* u# H$ N# f# q# Y
QT_BEGIN_HEADER4 W3 I6 h: [5 `" U! u$ S B
QT_BEGIN_NAMESPACE
" x1 ~/ i/ b8 q
" V) K+ C) A' F; k4 mQT_MODULE(Core)
$ H& u5 m( I1 O Y7 F, G1 D9 P) B; j7 R( C1 j% W
#ifndef qdoc6 J, ^' b1 o5 M( S7 V$ }
# d% G# }9 e/ j$ M7 ]2 `
namespace QtConcurrent {
: ^# H, S- X1 {$ R4 A: R% @8 K" z
& z+ S! ]9 B e; u0 ztemplate <typename T>
' B8 C j1 k% n5 P: vstruct SelectSpecialization; y" S* p/ r; c0 o4 J" P& O1 j
{
: @1 H) O( Z+ g4 D" Z template <class Normal, class Void>* p3 j( V4 N9 q. a! i) V
struct Type { typedef Normal type; };2 m2 b S7 D3 O" Y' N6 ]
};
" P' t, A5 t8 ?- e- T: A8 @$ [( S% {5 ~ `4 q/ Q
template <>
: j/ \: i$ p0 xstruct SelectSpecialization<void>" v! q: I( p7 v2 B4 F C
{8 L; x! J" n2 P1 v, X0 [7 R R
template <class Normal, class Void>8 r, V+ f# s7 ~1 h
struct Type { typedef Void type; }; O4 v: u" J# `4 |1 j( g
};) p( k @* [: O9 K% a4 P7 m$ I
+ h1 M7 v6 |9 k7 Atemplate <typename T> W6 T" t9 a6 b: {' @; b7 F
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
9 i; Q* M. J7 a _% y- A5 @{
0 H" T7 c6 c0 r9 {public:/ h) T( {/ p2 d. _3 R/ D _
QFuture<T> start()
7 ?& L" s O3 W0 ?9 i {4 J/ G" S" H8 `" |7 Y) S
this->setRunnable(this); l! r$ k- @$ k$ `2 ]
this->reportStarted();
4 M* @' C2 A1 A0 O, {: B& D: q QFuture<T> future = this->future();
! j. V" Z4 Q% Y2 b; R% F1 Q) d+ W QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; p6 ` {! n3 X7 J return future;
) m2 w% k$ |/ L9 T& {: b3 B }
; p8 Q( ?7 N7 [
- u9 m* U1 n% e! G4 l* s. ? void run() {}0 L. J& V; P g7 a# I! s" n1 ?
virtual void runFunctor() = 0;% d, |" b7 Q; z5 ^
};
' Y/ D9 J; d7 i7 A' Q2 w
, j. q2 D$ Q# e" ?& T+ atemplate <typename T>2 e$ D5 P! l/ n) Q
class RunFunctionTask : public RunFunctionTaskBase<T>
( F( n$ h3 ]& O+ f$ w- g* o{3 B3 P0 F/ F* ~( H! ]7 Z9 i
public:: ^; c$ \2 v1 B
void run()
. q. N2 @4 l5 r1 ]2 I5 M, q; A {, }3 m' k0 i$ Y/ o* G9 O/ z. q
if (this->isCanceled()) {4 n2 @5 g. |/ \1 T
this->reportFinished();2 r) w$ w/ V* M
return;
+ s6 w6 V6 {7 Y! U3 D# M }
! q% J( K f; A# o8 I this->runFunctor();1 j; s1 b) r9 u" i4 m/ D X0 ?
this->reportResult(result);
* i) N6 @" X7 O; q. a1 n I this->reportFinished();7 r" X u& D' i$ Z8 V/ b* S
}
) c2 U2 _5 N: @% ?8 p; ` T result;
' c1 {" j- G! b};; i+ U# |! f) c! {# r
0 j' g. ^5 |$ _
template <>
( p' h7 ~4 b2 E' X V6 Tclass RunFunctionTask<void> : public RunFunctionTaskBase<void># M; f m% C8 g4 H* X7 E0 r
{
: l u' q" T: u2 u" ^& Z3 y2 qpublic:
; }* a7 ~ q% R, b6 k void run()
' q0 O9 u" L3 R1 J7 f/ [* } {
3 e6 J% O- z/ _6 a% _1 m0 a6 ~ if (this->isCanceled()) {
; P7 b" M! Z) y2 R- E$ A this->reportFinished();
) [% r8 Y0 k6 @4 @6 b, \2 n3 m& S return;
3 i& a. K: q) X }9 v/ ]- {1 l4 x Q& f5 x L
this->runFunctor();+ ~6 A+ y" T5 m
this->reportFinished();4 E4 \# T. |* x9 y1 E
}
$ I& E# J1 l& c( d) R, [};7 V6 o1 B! \9 s0 S( s# A H' Z
* m- b: A4 m U4 T} //namespace QtConcurrent
/ m' L& R' [& M$ L# m- v( O- N4 L- ]: g+ w
#endif //qdoc
5 R- D5 U9 z, H& `4 C p
# _- Y8 }0 a7 x0 }; `6 Q; VQT_END_NAMESPACE
/ C1 Q/ v1 j0 K$ r% j& Y; z* }' m: YQT_END_HEADER% |; V% d9 y3 [( S, k. v
' ?* \8 g" B4 j9 h. n#endif // QT_NO_CONCURRENT
1 `) _/ a- N/ F' k/ s
N0 A, y0 y% `) j9 g#endif
* T1 e" I; z2 u$ e) |( i
6 }- [, [7 `2 N, E9 d |
|