|
|
我对syslink进行交叉编译到arm,但是出现如下错误:3 v4 d5 m, {. Y" C: z' E) l3 i
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'8 }: _* v+ p7 k4 G( {$ ]' L, J* Y! e, A
s! z0 T/ V/ C. R- R2 p7 l$ L
这个头文件内容如下:
2 K9 S5 w( I/ o7 X' e/ D7 v. }5 Z#ifndef QTCONCURRENT_RUNBASE_H
/ ~0 H4 T4 Y2 g#define QTCONCURRENT_RUNBASE_H* T9 F- D" g- T/ p4 e& I2 z% I
; ~9 {+ i" K" g#include <QtCore/qglobal.h>
4 k! y6 c; C+ ]/ G3 |# D( c0 C) x% X; G
#ifndef QT_NO_CONCURRENT
% F) [) l' h2 s: {! g9 T% J
; a# |6 J# K; E) Z5 r#include <QtCore/qfuture.h>
5 x' ~1 \! B& H0 m2 t+ a#include <QtCore/qrunnable.h>
; r4 A% K' n' D% `& Y6 r#include <QtCore/qthreadpool.h>
: P, S) ]% I& C) C/ L( o8 O. P
$ ]# u! z7 y) kQT_BEGIN_HEADER
" p, ~: ]( ^; {9 IQT_BEGIN_NAMESPACE
) `: U5 T$ E# a/ F
8 _6 N( y' F0 ?0 z) d/ a* RQT_MODULE(Core). ?4 |4 v( e$ o1 A: z- t4 f; Q5 ]
+ Z/ a" U! x: S. V% E#ifndef qdoc
' F) v7 k$ B) L7 @3 u: F
) T6 U4 \: n9 L& @9 tnamespace QtConcurrent {) J; s* i$ l. ^. d$ k1 l- h% j. D
f) ^: }$ k$ o' H& z4 k+ d; f
template <typename T>
5 R- |, R0 y5 `$ R8 U( P% }1 astruct SelectSpecialization
4 F; r' R' j- N0 m" N7 W{
% y' g, B t! o6 V# X4 i template <class Normal, class Void>
+ |" L# t9 W9 C: I struct Type { typedef Normal type; };
; b# Q; P# Y2 e5 D! C9 u};
$ n6 M7 ^2 |% ?; n3 n: y! H# L4 J5 V9 G3 h
template <>
# |" G+ u1 f8 \* Kstruct SelectSpecialization<void>. j' P# g2 S; v; s
{
. V$ Y: Q6 H( `: B: U6 p# v9 B( K$ } template <class Normal, class Void>
: C0 ]) Q2 C8 `0 S% t- V struct Type { typedef Void type; };
3 x0 O2 B4 f' x2 w1 z};
& G% V3 Q- ?* T N8 |: V$ A2 o8 X. x& ^9 f% @$ B
template <typename T>
; l [! i, u3 X5 eclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: N% m. o/ V9 A: l3 i{
# a+ `$ h; ?! G. |2 k$ kpublic:$ W% H1 {; p8 \: x! D5 C" U
QFuture<T> start()
7 I9 c# Z i; {) i {
, N' f! @0 D/ m- M: U X# k this->setRunnable(this);, c1 ^( Z3 P. C6 w" X( X3 q. w" N
this->reportStarted();
/ b+ W" P4 ^% b. L: J. z QFuture<T> future = this->future();. s8 f q/ f4 I$ ?4 x
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* m4 E. m v7 l4 n% ~8 l' e return future;
" r, P. F) J$ w. m* V9 G3 v }
) ^) I3 K, H( O: ]) g8 q
- r+ a5 Z4 T" P; i void run() {}. o" C% k! ]% {! Q) F
virtual void runFunctor() = 0;
( r2 j: c* g9 N};
, l' H5 W& D) h2 I0 n& X
7 x1 K0 ^4 u C5 F% J4 Ntemplate <typename T>. f2 j( U+ D' t+ `- j7 X+ k
class RunFunctionTask : public RunFunctionTaskBase<T>
6 l. z8 a1 a0 x# a$ V" e{' y4 y1 L1 p, @' H& @9 y3 l
public:
+ n8 l% |% K7 ]/ _5 y void run()
7 `3 i" U! @! n+ h6 Y* P {
- L) Q4 Q4 B& v5 _' r$ D- r if (this->isCanceled()) {
+ @; l7 G+ t- f! y- R7 M% Y4 O8 s this->reportFinished();
8 ~5 V$ f9 {4 T. s7 M* {% e( k return;. ^2 [, o4 H" O5 P$ O" [: p0 i
}' N6 G" Q2 I5 _" E4 P" W, ]
this->runFunctor();# N! }+ [. [" V/ a, O. p" {
this->reportResult(result);4 q0 `" b1 J% u: M' m" t
this->reportFinished();
- `5 }2 i) x$ q3 I. h3 K }
. E3 w' K/ V' \ T result;) f0 J! w9 r& p% z4 Y; U& F
};
7 c; M6 r; {8 o. j5 v! V
6 |/ |4 A# q5 n( gtemplate <>, ?- {, m) v- ^- o H1 V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
, e3 Y( \& F6 M0 W{
0 L( r3 `, Q. o$ J) H$ L0 @0 apublic:
/ n" G8 L1 w3 T8 T void run()( b, m3 }; V1 Z8 y9 H# M
{
# o# K$ q8 S0 Z$ g5 Y( ` if (this->isCanceled()) {$ k1 r! a" V$ R1 X2 F2 W5 K
this->reportFinished();3 a, E* y0 ]- w$ A" j, e& J' C8 t
return;7 J6 |: U. ^8 g' Q* f7 C2 S+ K
}) I2 U* `, W; c. F
this->runFunctor();
( s' C* I2 x) b8 f& s. |; V: x9 F this->reportFinished();. Y% N+ l4 d9 a) A
}( w, o$ A/ |) z. o- ~4 F
};
4 [! _% y1 H+ Y/ I# n- K( P a* f7 C
} //namespace QtConcurrent- C) W- R) e% ~& |! B3 K$ s. X
3 d0 E e l$ S4 W- E#endif //qdoc5 f1 r8 W: s! f, d8 o
( R l. ?5 W/ M8 H' m
QT_END_NAMESPACE
: _' r9 K6 K$ e, F6 X. K. C" XQT_END_HEADER
& N3 t* v. Y' U# y0 u5 R0 r% L Q+ x/ m# V" k- L! a
#endif // QT_NO_CONCURRENT
% w. x# z6 }( o& n, `" s; t' `
5 m1 V: q" u* w, u/ J) K#endif) Q8 u; n% }! y. p
5 s) \# H0 A& B
|
|