|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% m3 Z2 q: c, H8 i: A 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'6 _0 A' G. H+ |7 M' g w
, ~3 U9 q# f* k
这个头文件内容如下:; P; y2 L7 j& V: S; f
#ifndef QTCONCURRENT_RUNBASE_H% I$ B G$ w9 p9 p* p* J- ^
#define QTCONCURRENT_RUNBASE_H
9 g: {; |1 |- J1 `, A- V2 r
" p F7 ^4 F2 I5 ~. V4 y% s#include <QtCore/qglobal.h>
. [# W* F" j" [! c. I
/ l2 F# X( P0 n: ~' B) }#ifndef QT_NO_CONCURRENT9 S- K7 i; @5 z* y8 O, ]3 K R
- I( S* P1 N+ I' }& g2 l#include <QtCore/qfuture.h>3 a9 e7 T2 r- r$ _. ]" k
#include <QtCore/qrunnable.h>
/ A; D8 b E! P2 X! K6 m#include <QtCore/qthreadpool.h>
, U8 k# T& O& M% W+ Z2 k
; u9 f$ m- q0 AQT_BEGIN_HEADER' S3 g& _1 W& X2 k
QT_BEGIN_NAMESPACE; i1 v# o2 }3 C' f/ e: W' v5 d
- `% u, k! T5 s$ j$ C/ ]3 U
QT_MODULE(Core)/ e7 F6 Y/ E" J, ~
" g& T3 }1 \! V* O2 Y) {7 Q#ifndef qdoc4 S7 g( s3 q' m( {. B, B4 m
. J: g9 q0 r4 z. k- S% l m6 Z
namespace QtConcurrent {2 [& a/ o8 i4 i I
4 J3 o- K# M" N# e" R+ k+ |template <typename T>
: K1 N- q! H. ^9 Lstruct SelectSpecialization
% @5 `8 T) k! q* Z{
1 w' ]% R( A. G template <class Normal, class Void># f4 i9 f+ Z8 ]' d2 n5 Y# k" S
struct Type { typedef Normal type; };) @- ^8 }& F+ P* V' v
};
+ K6 i: B; W, d5 `7 V" L4 k. u6 }0 V7 }
template <>% I, ?3 M* D1 T
struct SelectSpecialization<void>, w+ Z" o2 I7 X" L
{
. c5 D$ Y7 C: j; ]7 l- {- a" d template <class Normal, class Void>! D" N; f8 C7 o4 T8 ^
struct Type { typedef Void type; };0 ^& [# u0 h6 m7 F/ E8 E
};( i$ {4 b5 [1 f& y; h) f
% b6 n" x# ]. v' q) b' R! R
template <typename T>
^! ?! N z) V* e. T" y; c3 Zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 r; e( _: z7 ~/ H! v% F0 v{" i3 ^. X! I$ c3 W
public:
/ J3 c8 `8 L4 r QFuture<T> start()
2 B% s2 d8 k, D/ i! X0 W& v {
) L7 R7 \* v; _" [. Z this->setRunnable(this);2 v h% w( t, U `
this->reportStarted();
( L, a/ T+ c. `* R) P7 t" G QFuture<T> future = this->future();7 V; j1 t) ? j8 |; N/ m
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);0 ~, I: z" W3 M# O6 G
return future;% C; U1 _, K2 P, w: h! v! W% p: Q, Z
}
& K; O) l; G: t+ f. P! T/ ?2 X" v3 @, M5 b- ^
void run() {}
8 \- z- B, X# s( t9 \ ~: j I' l. T virtual void runFunctor() = 0;( ~ h& T# Y/ I# p. Z& f7 c
};. Y8 v( q3 j- J, s/ e
" w! U& ?$ T+ [) Z" e$ L
template <typename T>
8 n4 [4 _. e7 ^5 aclass RunFunctionTask : public RunFunctionTaskBase<T>. L" F9 Z( A9 k7 v0 j, X+ q% i
{
$ l' ]; p( L" q- q) M' Bpublic:7 y8 L) T, S. J- S- X, `% V9 }
void run()
4 c7 l9 y) V% c% A9 F {
/ p3 h! ?5 t" ?) U5 T8 c. I if (this->isCanceled()) {
" ]5 t# k( ~" c9 s6 y this->reportFinished();2 \; ^+ c% p, ]* ]- O
return;
- ?0 {. O0 W. B0 J% s2 G }4 `1 x& T. w3 a4 W. I: o+ O
this->runFunctor();. R0 x; X) g3 \& {5 K* a
this->reportResult(result);
. @) J" u5 P+ a this->reportFinished();
+ p/ U; m9 n% R: G6 R# I }
7 s9 T5 G, j4 I7 F5 s, _4 Q T result;
. ]1 J, u8 G; V2 r};
+ a! j; \& T% z* W( y/ L! X `
7 ^: }! b O$ l& D& o# itemplate <>
" u1 N7 I3 w2 n& i$ C) L" iclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
' w& } m6 m8 r{
" s. I, U3 M" X% ? gpublic:( b1 K5 p! W- h
void run()
. ^' f# s; P$ }- A- T {7 N# C/ V" ~+ T1 M- o
if (this->isCanceled()) {, y4 Z u! h$ V% s, `3 v
this->reportFinished();; L% J {3 \' B) f
return;
2 U: p! r2 z) h' N3 x1 W1 t }
; c: S# ^$ H% p; t$ B/ `# L' K/ p this->runFunctor();0 u" r0 e& X2 r* ]4 F4 |; K
this->reportFinished();
( M+ b2 h" ?3 i4 a }; E) J# P# j3 M9 }( u
};
3 G+ n# W5 p9 w
6 U. p1 [* Z( p& t, `+ y} //namespace QtConcurrent
! T- ~1 O/ x4 k) N9 H1 a8 q- N2 A/ S( m1 U) Q6 ~
#endif //qdoc6 G+ s: t! L6 y/ c+ Q
7 _* p! @# U/ O/ d
QT_END_NAMESPACE- U# u8 m3 s9 _: D! Z5 _8 I4 V
QT_END_HEADER. a0 T6 o9 p; y: A5 o" q' y
. ?, H ?" u: ?
#endif // QT_NO_CONCURRENT
6 ?4 ~: p3 \( l0 B7 \) ?6 G' k
3 k5 X2 i( `: m. w% \% J+ Q" h#endif' p8 H% ~; z) h
" v9 ]2 z9 k' g* W& K$ l5 N; X |
|