|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
/ [3 E0 S/ z+ h; w8 B/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'7 s+ j1 W- k% }8 @8 j
0 V" t* p. F. m4 K1 x$ X这个头文件内容如下:
* D6 O* R. ~& N" {2 L5 ^8 T7 f#ifndef QTCONCURRENT_RUNBASE_H! t* ~' }8 }5 h4 {# s0 p. {# \* o6 i
#define QTCONCURRENT_RUNBASE_H
8 i& s9 t) U7 H( _# x$ L0 }- o G0 x& L: u/ t: }
#include <QtCore/qglobal.h>
( s' ]+ b) ]/ ^" n$ b" p) |+ p: g/ c( o1 O2 C
#ifndef QT_NO_CONCURRENT
8 Q7 w) F# q* ?0 n( S$ |7 R
8 J% l1 q9 b+ h4 N; \( r% R/ F#include <QtCore/qfuture.h>' [* w& N+ J# S1 S5 k
#include <QtCore/qrunnable.h>: z# V- I* ]. Y" ?7 ~" y
#include <QtCore/qthreadpool.h>+ Z2 [) P" P# N6 Y# x& F
' f* m! m" l' t: M" V0 F. N
QT_BEGIN_HEADER
* _4 m3 z$ i6 l g3 z- W- ^QT_BEGIN_NAMESPACE/ V2 U4 u5 [2 E) |8 b0 f
5 T1 i( u' j8 U8 v$ U: u& eQT_MODULE(Core)3 R b7 C2 W9 C8 k) Q
& B1 E& v7 N9 y# t; G. T/ J6 X+ m/ v
#ifndef qdoc( ?5 D) Q6 J. k: O2 h
; `- h1 u% i. z4 `2 B9 Jnamespace QtConcurrent {
X% E! S$ V t4 V
! W/ J) b7 x# A3 O) O, h* T: ntemplate <typename T>
6 r/ P2 q, `- {9 {0 P7 j8 tstruct SelectSpecialization2 O( X& P8 H6 t* h& E/ a# h9 z/ a
{
/ P% K# {, _5 [8 p template <class Normal, class Void>
9 [, ~; @, V- y$ I2 R( e struct Type { typedef Normal type; };8 e+ ]# }4 C2 v: \
};* ~* W; k2 B# b, K& ~$ d- l% U
( Y+ K2 y" B% W
template <>
' m) b- m" \3 S; Vstruct SelectSpecialization<void>
) m" O6 B$ ]$ p9 L, J; [2 W{% l8 J6 S* j+ |$ ~% V
template <class Normal, class Void>2 R( o/ S* x4 Q& C& @
struct Type { typedef Void type; };' M1 M8 A, I( _% M7 Y2 V! }
};
$ E/ v# Z& ~ B+ C2 [9 M7 R$ B$ v' k: j' C* W" C5 R
template <typename T>/ j h0 h* D5 V
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable: b; K: S& k4 N
{
% K+ \4 ~% [( E& Q K! Y# N; Lpublic:
' X2 }' B% }# C! v QFuture<T> start()& \5 @# K7 u0 z$ k' m" i1 q) N- m
{
. I2 S9 ^; D) R this->setRunnable(this);
& \9 x: g7 V* S7 u9 ?4 u( N this->reportStarted();
& V$ V8 i) C+ K' J QFuture<T> future = this->future();
" n3 e" b/ X4 ~" \, l QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 \$ N7 Y V H2 A
return future;
e! ?8 p) x0 k5 A8 W }
1 |% j% l+ M; Y- ?3 _8 y4 L! H* m* ~
3 f' A! D( X- n2 p void run() {}
2 d* t# I# G( R% p5 ~3 [* G virtual void runFunctor() = 0;: |1 T+ X+ S# o$ G, ]0 K i* h
};
1 ?2 i1 h, y7 P: N6 `( n% f5 r4 X7 {6 D" l+ I1 e9 ~) s( x3 n
template <typename T>0 k* z! p3 Z* J `+ D- ]" o9 x
class RunFunctionTask : public RunFunctionTaskBase<T>
/ P8 e8 m/ A3 Z+ G1 V1 ~! d6 T" g{
# T+ L S7 y0 q' k" R! ypublic:3 v2 Q. `# J4 c% w! G; k3 |1 c
void run()# ~, Y ^& ]. V8 j9 V3 h2 e3 d
{1 M% ~" f1 R$ V1 w
if (this->isCanceled()) {
/ y+ _. e# J/ u* ^. e this->reportFinished();
% R* b3 z6 G; l( c return;
6 g- K5 B% }$ x5 V% g }& j& k* B( R; |! K- ~
this->runFunctor();( Y a/ ]& W2 w' o2 Y: `5 O5 D
this->reportResult(result);7 g7 f4 A: J% m+ I$ M7 N }" |9 c! q
this->reportFinished();
, f/ h! B3 b! ?# T }
2 E5 |+ U( M7 b* B" n/ e t: Z T result;9 z, p" Z \6 H, g4 }2 |. L; H
};& G% u( K4 Z5 D0 i" E4 b6 o
5 c) N U5 d3 \' n
template <>! a. I: C5 g8 d
class RunFunctionTask<void> : public RunFunctionTaskBase<void>/ m2 O5 ]3 A1 j6 w! b
{
3 l6 i/ t6 s- n9 J+ ]/ Cpublic:
* w6 ]! l, ^) m+ _5 q5 m5 P, l q void run(): G1 H; _( c n6 x+ i
{
$ C, s! T3 U6 A& r, c/ J* [/ G if (this->isCanceled()) {
3 o+ d5 Y1 A6 j `) G( U this->reportFinished();
& W, [& S1 O- Y6 m5 }0 c return;
" \: P5 \0 ~# A }
8 I* S: X7 {. O- n: Q& I this->runFunctor();
# `3 ^" l- v* W" t# Q5 J5 e this->reportFinished();
, {( ~+ [. X0 v8 m5 | {" n }. S m( v4 t, V# i7 a$ R, `' V
};
, P+ k& j$ S1 h1 B
' W/ w+ o! p2 c5 |: V1 |1 ~0 \} //namespace QtConcurrent
1 O# |6 p) |) j- S) b; x- m( F/ E4 q$ h# L4 U v# L
#endif //qdoc
4 a# z5 v, p2 O. I& z5 O) @, L
* Z- l( p9 }( R# `QT_END_NAMESPACE: j) h) d" ^2 F& Q" t' ~) `! e
QT_END_HEADER0 F) c2 Q+ ~0 e1 t2 D& j1 {
[3 h$ B2 W0 \; k#endif // QT_NO_CONCURRENT0 l( s" [/ @% `7 Q1 {: o
3 [( w! D* m/ }" w7 h: K#endif0 p* Z# G ]/ k; m5 {; R0 t# M
- O* ]* m8 e6 R/ ^9 ]2 U! C* ?9 j |
|