|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
' o% g J1 k2 ~) C1 T# Q; c/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 u$ G0 n& y5 J% w, O" x8 E
( s4 {0 Z' W& A8 U, R这个头文件内容如下:
" X. ~# r' x4 B" r: Y' a#ifndef QTCONCURRENT_RUNBASE_H
' W! `* [+ H5 q6 s, _9 x, ?#define QTCONCURRENT_RUNBASE_H7 ^2 b0 j2 i' i
+ w/ e3 ?2 Q( I5 F
#include <QtCore/qglobal.h>
& G& `8 z0 h8 ~* t) ]0 z1 Q) f& u/ T) G
#ifndef QT_NO_CONCURRENT
% v0 [ H/ H r/ U3 W9 Q; o
( p" c% }; J# Y b% t* \0 u#include <QtCore/qfuture.h>: j' _5 H' h/ C! h$ U! U/ v# k
#include <QtCore/qrunnable.h>1 g! _9 O4 Z* ]% ]
#include <QtCore/qthreadpool.h>% b4 u, \1 R8 Y* i4 G' k; h- O
% Q, x; _8 J- R: u
QT_BEGIN_HEADER8 @5 h) M( E8 E' a* N4 F
QT_BEGIN_NAMESPACE
$ [3 U. X2 z8 z8 m( ^, n' T1 e2 ]; W9 Z9 f
QT_MODULE(Core)0 j5 v$ V4 A, |6 t3 u/ v$ _
9 B8 R* w! Z8 |' M#ifndef qdoc q! u0 j; f! Z+ y- h- h+ x
' W# X) ~2 D; i5 W( anamespace QtConcurrent {+ U! b% n5 Z. s. P; r7 J1 l
1 o# b% o) q. r. J: V. b
template <typename T>
9 V( Q" o! q/ a; D, ?, B8 Y* jstruct SelectSpecialization% x! e0 H- e: Z7 e k0 k
{0 [* S5 C$ R( B$ w- H3 F
template <class Normal, class Void>; K# F& D; W! \% k) R
struct Type { typedef Normal type; };
0 a# p( u5 O0 ?/ c" c5 K7 F};
. p6 D1 ~( h! G' E+ E" D
; }; [8 U$ _ y3 R* [; Stemplate <>
a6 l1 u5 }% e, h. ~struct SelectSpecialization<void>
6 x5 I* C4 y+ @% t l# I{9 @/ t9 x/ a3 k& v$ b8 u" A
template <class Normal, class Void>
( J3 C6 V- s' }# Z) f struct Type { typedef Void type; };
" g, D9 x* A- g};
8 K4 p) `) k6 h! h2 u
) P/ M2 P5 P/ J6 n/ A, _3 jtemplate <typename T>
% ~/ p: \: t9 x, Qclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% j' S* |: H7 J( j{
0 q2 C3 S4 [& Dpublic:4 [' E) S+ C7 ~
QFuture<T> start()
4 z z7 D F9 r7 X9 Q {
3 c7 ?" R, z# \0 ^! z1 g2 y this->setRunnable(this);5 Z& G- g+ ?( ~- z
this->reportStarted();
2 U1 c6 X: _' I; D7 b- Q4 m QFuture<T> future = this->future();6 j+ M, v1 k! a: ]+ Z4 N
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& ]5 _2 E, `3 D: q
return future;
1 Z# j9 `, j. o: V; L) A# Q% H3 T }
+ t7 `) _( Y5 Q$ i6 a/ Y G) i8 X* j+ J2 c
void run() {}
% _- X" M: L' ~! _( v: S) F virtual void runFunctor() = 0;3 e4 Q& Y0 W& q* p
};
/ x i5 n7 k7 e2 U# V/ D
, i Y" a+ S# Q6 h* h8 gtemplate <typename T>( L9 G$ L, R6 g2 W5 G, G2 O% c
class RunFunctionTask : public RunFunctionTaskBase<T>
: R$ Y1 G2 n# ^+ p: P7 H{
- l9 `" _, d; j; ipublic:
* t. V! B! W7 ^% A1 V/ h void run(): R: `) Y$ X$ I
{
5 ?0 \; o& K) V" t. v if (this->isCanceled()) {
# n) @9 r( O+ c2 g* s this->reportFinished();) r) |( r/ z- u0 P0 \. p6 \
return;# O! i' o4 p5 ?; a6 k# c
}# ]) ^; S, E. K1 V
this->runFunctor();. \/ t1 b; a# u4 b v
this->reportResult(result);
+ P) P' \% k' N0 E7 T this->reportFinished();
! g* K5 h/ J. m }
0 ~) T: e3 X% U- L' U: S; q0 R2 o T result;
" a1 D7 g6 W. P' l, I l1 [ K3 w};
- J0 D4 }, l3 V1 B0 L# g( t& T3 L; i8 s) b% U0 l& F
template <>
& ], @# A. L- c- x* o! y6 z$ \class RunFunctionTask<void> : public RunFunctionTaskBase<void>, \, B8 Y4 A r4 c
{( h1 K% |# ^6 g. S! y. I& O# |
public:. ]/ F9 \) V6 K: a
void run()5 l- J3 V/ J' s/ K/ ]# n/ Z( W% j
{
5 T- E0 n6 n& ]4 e) ^ if (this->isCanceled()) {
6 ~' m2 Q' a* V this->reportFinished();
+ n- l k. `$ N- e% \% o( `: n1 E return;
, I! q6 H0 C9 d/ F+ A4 b }
8 w: D; c! [1 e# x this->runFunctor();& H! Q$ x( k' i5 d( s* `9 ~7 d" A& }
this->reportFinished();9 J2 W% h7 Z. C- o5 {/ k5 b t
}
3 W" |, ~( N9 N x' X};
4 t; r: o, @* s, U0 e s0 A9 w
) z7 f9 j+ d6 X} //namespace QtConcurrent
' J7 p t) q2 U3 I& w- T
* R& E" b+ y C- k X+ q2 o#endif //qdoc6 e6 C" S. B. M$ I
7 ^0 S4 }+ O" |; ]9 w9 o1 [QT_END_NAMESPACE
9 W* ~; ^: z$ b" T! f4 N/ JQT_END_HEADER: F' {2 f6 A6 ]' p+ J' F
2 m% ~/ j: D3 @: Z; t
#endif // QT_NO_CONCURRENT8 n; h! _7 j! B) }+ O
9 |+ y; X3 l% T# J#endif. F* V7 b% [$ {3 A+ {5 E
! W2 r0 K+ B# A) l$ [/ C3 D5 G
|
|