|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 `# W$ T4 i' u! _* ]/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'4 D; i( h; \7 G9 l2 Z& X! ?! ]
: w+ N2 Z! l0 P7 L/ c/ ~
这个头文件内容如下:
6 r. w" Z( P: [' {, ~4 z#ifndef QTCONCURRENT_RUNBASE_H4 Z& F. u* p( o8 w
#define QTCONCURRENT_RUNBASE_H& J/ s5 ~1 a8 ^( s
, L" U3 k& b2 d3 ^$ g$ g: N& G#include <QtCore/qglobal.h>
2 F- c# H: ?5 T: }( F
: J$ r5 D/ x9 t8 K4 ^) Z) P#ifndef QT_NO_CONCURRENT. g* }- L4 R7 c! u5 ?" M! u" T
2 L" S" I1 d: W1 \
#include <QtCore/qfuture.h>6 h8 d* T3 ]! z3 j
#include <QtCore/qrunnable.h>2 T7 Y; z, G/ M" s/ S
#include <QtCore/qthreadpool.h>7 `9 ? a" O+ y; h: y; J
3 ^" L+ a! b3 C3 |
QT_BEGIN_HEADER+ e D! ?7 e3 r
QT_BEGIN_NAMESPACE8 N5 Y$ i3 f& `7 } _ c
7 O. L1 I" @" ?, }4 q& E% H6 g" |
QT_MODULE(Core)
- |2 b- f Y9 y5 u! K7 x2 G+ A4 x3 {( n: P
#ifndef qdoc1 t2 W' n M* ]3 m4 M$ w, G0 @* \* G
" [/ q; }2 `9 y1 a H! a$ H
namespace QtConcurrent {
/ m" f7 @5 |7 B" ~ u- l- @& H1 J8 I$ ^8 G) Y2 i3 m4 s
template <typename T>& X% y! @: l' H8 j
struct SelectSpecialization
7 E& n8 n- E& m3 i9 }{
& }4 X. m0 i' x* d5 @ template <class Normal, class Void>
: ]7 s( O& P8 ?8 b2 B, V3 G) `' J2 } struct Type { typedef Normal type; };! P, g j" `7 ]; s4 J! I5 L! I
};
# W1 K2 }$ {& `, x
/ t# s2 z5 r. E4 ^( Z9 Btemplate <>" y2 p, Y1 b6 S3 _. ^( Z
struct SelectSpecialization<void># U; N3 f0 E! s$ [! v/ m
{; z; o4 `7 p0 Q6 p
template <class Normal, class Void>
- h% r$ A! [& N/ `/ |: H) _ struct Type { typedef Void type; };
- _# P8 I' Q& K& z};
' I. v/ i7 E' i' `0 U$ q# C# E) Y& w& f! w, r$ o
template <typename T>
4 v5 N7 m! B3 @0 dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, m0 R8 t$ n1 s% H& J8 e2 t$ j{) N4 I0 t. N7 t( `$ W$ x K5 s1 J& i
public:
- K( W% \+ ?9 B# x1 `2 |8 N QFuture<T> start()" ~- y( P5 X5 H+ f$ n% V
{
- S ^9 |1 \* T, `, E% c this->setRunnable(this);
& U% o& k! t% d, e$ U: u* y. Q9 { this->reportStarted();" O- [: Z* b% h' B0 B/ p% N
QFuture<T> future = this->future();
( g" Q4 \. u" M0 [. C) U' k, w9 b7 F QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
8 a8 j4 M. O; A C6 } return future;, w: m4 v% C! |' i! @" P
}
" n: b9 T% z, h
( F& U+ [! y* v/ @6 q void run() {} L3 ]1 z# ]: g: o7 Y2 R: Z& Z
virtual void runFunctor() = 0;
7 p" _' z. Q8 y};1 h' m7 `$ ~# \+ B
* |4 K3 \+ o) G( A% \template <typename T>
2 j* w0 U4 ^+ p: V) J, Fclass RunFunctionTask : public RunFunctionTaskBase<T>: K, M6 [5 z, v8 b
{
/ P2 s5 W, P' }, ]8 j& \) lpublic:
0 Q' `4 g$ _0 Y A# ]7 @ void run()3 |3 @% O6 B' S8 K
{
( O7 v3 E! s+ s0 M% ~8 u+ e if (this->isCanceled()) {
) |3 e/ u7 t$ o9 W6 M7 N# C this->reportFinished();
' k/ P5 U( D* W- @ return;' \ c4 s* F' F
}
' e4 ]9 l9 V( R+ X) J! f+ X this->runFunctor(); A2 B% P: K; f/ F* O( w& R7 V, p
this->reportResult(result);
) K; A7 J% S& R/ M8 o this->reportFinished();
1 s+ |0 G% m Q; L }: P( G g8 b! k2 `, D5 [" x W
T result;
0 `+ y1 O6 \/ x2 \2 A};( k; A# ?+ v; Z0 P
4 R) k3 }& O4 g4 G. q+ X. _template <>
% e& J9 W7 ~: M1 h: C- Dclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
! i/ v; f& ^9 S! N! w$ Z{/ t! D7 }$ ?, Q3 _; v1 |) V
public:1 ]3 q. H' d8 p8 o, [3 w
void run(), o' \) n, b& m$ f
{
! |9 z5 ?0 f% \1 U* s if (this->isCanceled()) {0 L6 s; ?" n2 x8 L
this->reportFinished();- k/ j* w4 R! [7 E3 y m
return;
! c: r7 L( O! U3 h& [7 r }
6 L: v5 p& y6 B/ r this->runFunctor();
8 h1 Q" d% |$ f3 _9 Q7 ~6 m this->reportFinished();
# }; u) Y4 ~8 q4 U" X4 r }
- r' o2 X' R7 M; ]};
( X: m5 }& f4 E8 z; `/ P
4 O t8 Q8 Z, d' a+ }} //namespace QtConcurrent
+ o. X2 B6 |$ s4 X" b9 ]6 V9 R( d+ a2 y' s% m$ ]9 f
#endif //qdoc0 o7 ^& E4 m6 h! m; O4 y
1 P7 p- T( k0 t0 EQT_END_NAMESPACE
$ U2 I9 ]! C: ~# y b4 X& n fQT_END_HEADER" e( \( O2 C% G& R$ Q2 _
8 B& Q6 X8 c6 p1 v& L4 k/ z
#endif // QT_NO_CONCURRENT
$ O& b: m3 d6 Y% p
2 K3 q1 m4 d8 Y. `2 m#endif
/ S2 V! k0 r4 G# |- y1 F
9 ?4 {6 @ C) [; ? |
|