|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% q2 i2 Z. i0 s! E
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'. L* @; p: W) M8 u" p# X
; A4 j/ x, L) A4 v0 P# k8 X这个头文件内容如下:, [$ X% N# W9 _- {
#ifndef QTCONCURRENT_RUNBASE_H
/ ?! S5 H3 i' J2 x- Z9 w#define QTCONCURRENT_RUNBASE_H* j% X- F" T3 V) C' I9 {8 b
" x6 ~# e" t0 l; V0 b" w8 k4 _6 m#include <QtCore/qglobal.h>
# S& T& Y; \( a4 I" V0 I
& }. Z: f ^' {, P" @#ifndef QT_NO_CONCURRENT" S: R9 d/ j# |7 c! H1 H
) k. Z& e3 X1 k7 P% F
#include <QtCore/qfuture.h>8 r k4 d4 C" b
#include <QtCore/qrunnable.h>
6 O* d* u6 G7 `# l#include <QtCore/qthreadpool.h>- \8 @7 t: s0 E C( k2 }
: i& r2 p, U2 p/ Y6 f. o9 k2 mQT_BEGIN_HEADER
8 }1 S8 p; M9 ?, [% H* |QT_BEGIN_NAMESPACE
! V/ ]+ h) t4 C- P+ w ~: L; r8 Q3 j5 c7 r, A4 P
QT_MODULE(Core)% z4 y- E, ?9 x/ J9 y& Z5 V1 T
9 u- N# q7 H* [/ X1 b& n#ifndef qdoc4 J0 `' u- a. {' J
8 j; |: ^4 S" Unamespace QtConcurrent {
" e4 U5 t' h- i7 e- `6 _- m: u' P5 U% N
template <typename T>% ^& J7 Y9 k$ O7 }
struct SelectSpecialization7 ~' R6 [0 B: q; E$ h
{! Y& _* Y! T6 Y8 z, i* t
template <class Normal, class Void>
: k4 U4 g( Q1 u5 M( G, n+ ? struct Type { typedef Normal type; };
8 Y& f0 F0 g! o! k6 M- x# {9 T, M' H) [};
6 p8 f* s1 ?6 O# E: r2 e- q9 s) E, s+ n" s+ f6 o' D- z
template <>& p5 q- f% {- u; u/ j4 y
struct SelectSpecialization<void>. ^7 Y' @$ _0 ]3 k
{! d0 i g6 _" a4 z' N) ~4 O) p
template <class Normal, class Void>
, q% K5 c5 d( m. p. Q, d struct Type { typedef Void type; };* [! A6 j+ @! @! ^
};
' m9 c; A- \+ b) H
8 e8 g) w- t4 _1 r, ?* ytemplate <typename T>( f0 ?+ V& V9 H3 T: P" n
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 F: E4 h' Z, R( Q! F6 a$ E6 t. _0 y{) p* a# }# Y& Y
public:. K* a& X# b) t
QFuture<T> start()
) V4 X& {% p2 K, B {1 c/ d, n4 P$ P) [
this->setRunnable(this);1 Q. p! d) a/ k' m% d: u% t4 R
this->reportStarted();
& ^# D% g- G7 W/ } QFuture<T> future = this->future();/ R" M, M( D( B( ?" D! \- I
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); S2 T- W$ Z: ?% ]- \2 G% G
return future;' c; }6 q# h, y
}
# I7 x1 l* ]3 L+ X* q$ I( _* J; a3 g$ U6 g; W' e3 n W5 k
void run() {}' `+ I, w7 i% N) `& ~4 v
virtual void runFunctor() = 0;
, Z! F2 u5 _" A7 T% |- C};
& a& R& b- V7 p; G7 o/ D1 \ {
4 z# T" I5 Y% r% z' jtemplate <typename T>
1 O2 ^: b$ C2 u( V( gclass RunFunctionTask : public RunFunctionTaskBase<T>: \. n" m6 z/ `4 _0 A* x6 O+ ~, h
{% Q7 S* o( I3 Z3 H; Z
public:0 K- {+ [! r3 ?% i9 `# I3 b
void run()1 Q7 S1 _! q% t) T' p7 k h
{' M; H& U/ q; P; V
if (this->isCanceled()) {' e2 o; O8 Y3 w/ k& K5 c5 _" B. B
this->reportFinished();! r4 S& `- l3 A
return;
0 t& Y( w" i7 w5 {2 ?; h$ c2 | }; x! |0 j" C( z4 Z" j* Q; s0 @
this->runFunctor();1 X1 q6 E, j/ ]$ P! `& }
this->reportResult(result);0 p' i k& h" e5 V6 h# [ E3 g
this->reportFinished();: X& i! ^. u7 J0 D. P: a2 r
}* _% }0 H2 ~, j" v8 L2 x
T result;
+ k* K8 C) b. |4 D; x8 J};+ l7 m* S2 s2 X
, N: }5 A/ e; C# i- V5 e+ ftemplate <>0 G, u: v( `4 Z0 f, }0 ^, z, d3 d
class RunFunctionTask<void> : public RunFunctionTaskBase<void>, T! A! N! a H2 [" d
{/ r7 u2 U7 F2 S
public:
/ {0 q% }; x) F1 N7 M void run()
0 _( w/ l. i8 Y* C {- _, e' w4 ` g; l) H
if (this->isCanceled()) {( d1 ~: w h6 Q5 Y1 z
this->reportFinished();/ _/ c, T) \, B/ c2 r% l! Q+ {
return;
% i9 L; i2 s6 n/ x8 B R- _* | }! [8 l* ^/ l% @6 b7 w G
this->runFunctor();1 C) Y I; [$ p) V
this->reportFinished();/ d& X# ~, x! |6 H
}
4 U# S3 U* g# q};
4 X$ m2 C2 T' H: w7 \0 R
2 E& T8 ~3 ?. f* {7 l% Y& f} //namespace QtConcurrent
# p+ p% F1 B3 z/ p: p9 g5 w* N
4 ~" l/ b5 Q) h' ?#endif //qdoc3 ?3 j9 r1 U' h4 j5 P9 j
b9 |9 f: ]! m8 d* iQT_END_NAMESPACE
( c* T8 W2 r2 f/ J" HQT_END_HEADER4 f5 j; y4 b& S/ i, o
3 d/ F, Q4 [' J6 ]#endif // QT_NO_CONCURRENT
; n W6 N; x: O4 |- e- {1 m# [0 C% S& h, g. } q
#endif" j J8 ?. ^% }5 F! r& I) e I
/ ~0 k0 c% o# B
|
|