|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: E# Z' ]- a) ?- d/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% Z$ Q$ n! [; g2 h+ m" j2 K
( \) [* \& g* N( E6 S
这个头文件内容如下:
: ~0 v9 j) N6 a* G% o: j) z& n#ifndef QTCONCURRENT_RUNBASE_H
' ]. o! m: v# O% [/ z+ A#define QTCONCURRENT_RUNBASE_H
" x6 N2 w1 W7 D6 U# G
7 [. t$ @% \. f$ ^#include <QtCore/qglobal.h>
: a: [; _- m# P7 A* q! ?- B$ c- G2 G- n: t. Q$ S+ F
#ifndef QT_NO_CONCURRENT
* R) R( t$ Z# ?) }" R9 k+ i! P# {% o) W$ B- D7 A% k
#include <QtCore/qfuture.h>
1 t0 n5 y' @$ N; o/ w#include <QtCore/qrunnable.h>
& ?6 t" }5 V4 ?# Q#include <QtCore/qthreadpool.h>
7 }; q) Y% q! L& F, m4 \9 M. a! V$ z0 O- ^! r
QT_BEGIN_HEADER
+ h" X2 [6 d2 n, E! e; @QT_BEGIN_NAMESPACE
2 p6 n' t" V! ]; Q( T/ ? y1 s/ N" p1 H* o n
QT_MODULE(Core)& O4 n6 f: B1 s" N# ]6 P
3 y8 z7 G0 V/ ~3 o, I& h4 c
#ifndef qdoc$ W: Q( a9 C' p. ~4 J o: p7 H* x
9 l4 M) W% j5 M# u# o% Enamespace QtConcurrent {
/ _( O. S& U Y* A" j7 L& S+ z J6 O8 m3 i" B
template <typename T>
% ^6 c1 x3 s5 n3 l6 ] X$ {( ^struct SelectSpecialization8 Q7 y" u7 J8 }1 C ?9 d, a
{0 E: X6 j9 ?/ C
template <class Normal, class Void>
- n) {; ?! e. p" m9 [ struct Type { typedef Normal type; };. {$ O) l' u' P7 n- ]! W
};
% M- @" v* E6 u% L' U+ ~' ?! S) l3 l$ ]/ _) e+ o2 m; r0 b
template <>
7 c" \. a% t: s* y/ Ostruct SelectSpecialization<void>" p- R& K, @2 x% q; h
{1 m7 J7 c' j+ x8 W$ B6 t
template <class Normal, class Void>
) j; ?) C0 e- Q' l& ?' M$ c" Z) O struct Type { typedef Void type; };
. W/ x, W( ~ |9 H/ ]};) A* t) W5 e0 n* s% t" c2 i
( l$ R' i: t3 e- Otemplate <typename T>
' J! {: L( n) Z4 X7 \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- z/ n; p: |0 w9 E6 X0 I{$ `; D4 U& k0 d8 `
public:2 u8 M6 T5 y( |4 f; g! `( t
QFuture<T> start()
% S2 t; f* ^7 C2 [7 j {
" H* }) E1 C+ B' K) ^/ c+ M this->setRunnable(this);) X* p3 T1 q1 q+ f+ k! h$ e
this->reportStarted();8 O5 ` `5 n+ C+ G
QFuture<T> future = this->future();- x# q- k4 M; x& o' W1 U( c/ S
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& A/ ~: C- O& ]* b! ]
return future;1 h& j7 q6 f4 c: @
}! U+ [' b, _$ W
4 u# `8 |8 N6 m6 k
void run() {}
! E% y1 s! S- o$ u# l4 n virtual void runFunctor() = 0;2 C5 ?" n& y/ j3 U0 g& i
};" i, V0 ]( m9 V! t% u" X: @
7 Z" W: k4 D u* ?
template <typename T>+ U) Y, c3 v) x; f1 }8 G" d
class RunFunctionTask : public RunFunctionTaskBase<T>9 D, r4 z L( D8 g! q' C: \
{
- [. Q7 u- }7 o2 Gpublic:9 D- A6 E6 Q% F: A3 f% u
void run()
/ M# M% J* l4 W' c1 C$ { {8 O# w& B5 C% M6 p$ e4 Z
if (this->isCanceled()) {5 @8 P, M7 h0 _. _( n2 b- E% N
this->reportFinished();/ b) i$ R! z) @2 O: m. Y
return;
5 p- x' L& g& O, x | }
( q4 Y( V, j5 G8 J. } this->runFunctor();$ l D& L- N+ c) Y
this->reportResult(result);. g! Z+ E d6 ^' E
this->reportFinished();' l- H9 S% `, U* S1 q
}
7 S$ F+ r2 n, l$ ?4 u3 |; T+ \ T result;1 \$ P. u" s) J5 V
};& G9 d6 u6 b2 I( m2 [( Y) A
) [$ R5 p5 O. C, i J1 e
template <>
" t2 P; S9 m* ]class RunFunctionTask<void> : public RunFunctionTaskBase<void>$ s& Q, Z A. X2 N W) [+ ]8 ]' b
{
6 o' E2 D+ E0 s' w6 o" G6 h" hpublic:2 `, H: t1 F0 Z5 O* F" T0 P
void run()" ^% D0 k, G, ?0 J4 t% G
{, o% c4 l% T d5 F. b
if (this->isCanceled()) {7 X& Y; d5 Y* W2 ?9 P
this->reportFinished();- Q4 m. Z9 T. H4 q$ p; I
return;
- O# g c, G) u, P U) A( C, K }1 Y/ d/ h& L: A
this->runFunctor();; t. z- C" `& ~2 h
this->reportFinished();2 h4 F/ t3 m. n
}/ Y$ m/ j* h0 U# b* T
};
8 K9 D/ f4 K; q8 H, p8 j6 p; }
! a* T6 k6 Q$ y7 v( Y2 v" n} //namespace QtConcurrent8 O& S6 a( Z: E5 x) q
1 a8 k# _# Y$ h, l' N# P4 j#endif //qdoc% w6 p; U3 ?& x. a4 b; Q
9 O* Y9 `+ C( FQT_END_NAMESPACE
% ~. g" R) B$ c3 c# N1 r! U6 GQT_END_HEADER! J& \( P: o( H# y6 @, P! _) q
8 O+ m& J' L, g- r' p#endif // QT_NO_CONCURRENT
6 f. w7 l/ k3 I$ b: C+ P5 O2 a7 R" b0 H7 r! E0 @; u. B' r7 D
#endif
+ P2 }. f; G( @9 D
, p# Y; k/ X8 T |
|