|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! w6 {5 W3 h; L7 Y6 @0 B1 d1 X
/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 D/ R; E- o2 T1 E& L1 N: N
8 w( H0 ?9 l) B# b$ m/ V c4 n/ u这个头文件内容如下:
$ }( i4 e, I" n, E' J6 S3 i5 ?#ifndef QTCONCURRENT_RUNBASE_H( |6 M: N; o6 p" z6 U5 [0 I
#define QTCONCURRENT_RUNBASE_H+ o! q6 c) _% u8 V) B: }& N
9 p5 t) w" r- `. b4 u0 d. \#include <QtCore/qglobal.h>) f0 c8 k' e1 } l& v
: N! B! f8 V; H' P" [* L#ifndef QT_NO_CONCURRENT# R. \ p1 V* s1 q- R/ Z% ?4 _
1 p& Z. P5 _3 S; k+ k
#include <QtCore/qfuture.h>% [' J" \; V+ T3 x$ }: U
#include <QtCore/qrunnable.h>4 ~6 c8 `# _4 D
#include <QtCore/qthreadpool.h>/ U9 c# E/ n { F
* ~/ l8 Y6 ^. B8 _" o! e$ Z3 RQT_BEGIN_HEADER, X6 P& a1 y1 m1 a l1 N/ m% _! P* G# R
QT_BEGIN_NAMESPACE
5 \8 n) o/ L) H
* h: {: f# v/ L/ [QT_MODULE(Core)
5 s; S9 Y* m# r' ~1 o
$ C" ~4 A$ Q ~: K, N! M# N#ifndef qdoc
6 k2 @) L/ U& y4 W
2 }# W% \* M5 ^# o5 Knamespace QtConcurrent {, \( P; W4 {+ ~! u! F; I
( r4 N! E, [. H2 S6 x( S
template <typename T>. \. e5 V7 \% }1 a! |
struct SelectSpecialization9 S. A* b! z7 A3 U
{( R( ?* u, K0 q7 q
template <class Normal, class Void>
5 Z% E3 D# \ ]% d J5 o3 V struct Type { typedef Normal type; };
. |& `& t! K0 m/ c; c};
) C% Y3 o1 s; W5 M' b7 R( K* ~: _& I3 g" k
template <>% K0 \" F0 E! d
struct SelectSpecialization<void>7 b; M, k; A+ y3 C3 F6 A5 X
{
. [( `# h0 R; n s- B template <class Normal, class Void>0 W1 k0 g* Z5 ~' i, p1 h
struct Type { typedef Void type; };4 m1 E# F, [1 D
};
, v, t) x" }. m! K: e" x+ V
' J% X+ {( F7 ~3 B" u3 ]* x# G" c5 X! L" ktemplate <typename T>
: @3 m9 C$ e# N p$ o' ~7 Z) Qclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable0 J: l& G# c) A8 v! h6 _, y, _1 s' `
{5 Y- M* ?( H; K7 a
public:
8 b! O, T$ {, }/ z2 J& L6 v QFuture<T> start()% `! G. u R0 X: j0 S
{; p/ W2 Q2 |" Y; ^" W6 T
this->setRunnable(this);: u: [0 \8 D$ o% }
this->reportStarted();6 H2 [7 @- l7 n# p0 c3 ^+ C& p/ w
QFuture<T> future = this->future();
" {* X4 |' p) k6 P7 Q6 A. s QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% u) w* g7 B" u1 ~" v+ Y- o return future;2 U5 m1 z! ]3 P
}
8 a4 o9 H6 Q/ d2 y+ m& l+ l# R
% |6 e0 k7 x$ x/ L6 a% f1 V& p void run() {}/ \8 |2 f: w* H! |5 C/ R
virtual void runFunctor() = 0;
+ u& D' E" R. `& H" b! S};
# ^5 J7 @$ e. J7 `% |( _$ e- {! I) u6 T+ ?- O# O/ Z! X+ | Z
template <typename T>0 s* q; U. m6 A( w- L, X* O! \
class RunFunctionTask : public RunFunctionTaskBase<T>
4 u& N- x3 A/ N{
; N& l! n4 \7 B/ g' u6 q, Ypublic: l9 R, @2 I3 D/ b2 }+ p: @: {
void run()
5 M0 z$ R% E) ^* U {
) [# D* y* i7 a6 ^3 a if (this->isCanceled()) {& o5 ], G" ?2 k z0 g3 r
this->reportFinished();; S; s1 \3 T3 {# e
return;/ R0 W H9 v4 V9 E, }, e" l
}
% g5 ?( K8 H+ ?* f: k% o& w, i! }) n this->runFunctor();
( d, T5 E# {6 \ this->reportResult(result);5 o8 Z/ v; ~ C6 C
this->reportFinished();& d3 n) l6 k2 k" J
}
- Q0 j3 ~ ^/ B2 X T result;
+ ]0 s! r0 m! ]8 H) R6 X};& A2 {; L0 L/ F; @
3 ^) \. f# W2 `- H# F* q9 wtemplate <>- z4 G/ u8 D+ ~
class RunFunctionTask<void> : public RunFunctionTaskBase<void>8 c8 N+ d7 M0 f, x# Z- ?
{0 I, Q8 S8 t8 d2 j
public:/ w7 l3 r. h M) A
void run()" v3 \. @1 W: o3 f* F2 k
{
/ [' `7 o- k( A* n/ }% e if (this->isCanceled()) {3 x! v& ^7 _$ l/ m7 F9 H" E
this->reportFinished();
" t3 H" |3 Z+ ~ return;: s9 E+ }( A" U0 Y
}3 w+ L& G/ H3 o2 Y, d
this->runFunctor();. A9 x! e! `- @* K2 D, I8 L
this->reportFinished();" G, l4 U, [; J- |, I, M# n/ g& p
}
' T7 R0 ~6 ^8 l" D4 z+ w; r};
: v) F- j* z9 m" Z! D- J: |9 I! g, U
2 A+ |& `+ H5 Q$ [} //namespace QtConcurrent* g }- q+ y& U5 t6 c5 R; P
( v8 C; Z6 Y- L7 Z
#endif //qdoc& S9 h: } V) Z& w2 A# s. J# T
/ `7 f" o% y4 i8 i( s0 H# O) ?QT_END_NAMESPACE
4 o1 E6 v- ^% v3 C) zQT_END_HEADER
0 g# j& o( ^ @ Y% g { c& t O4 T) o" x3 C
#endif // QT_NO_CONCURRENT; f: _) m; I/ R" d
) e( U, P- E% T k7 A7 ^; x#endif0 k4 ~! `4 { K/ @: W, K
7 V5 H/ X: q7 r
|
|