|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! N- F5 y: G1 b8 f( s! y
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% U& T/ u$ ?& U: i4 `- U3 T: h2 E8 {8 |6 A! i" _; r: A8 [. V' {* k
这个头文件内容如下:2 h9 [9 b& o1 @1 O! s
#ifndef QTCONCURRENT_RUNBASE_H' E/ o- I8 L _0 M* J
#define QTCONCURRENT_RUNBASE_H
" ~- g& U1 G; o# f
% q1 B1 s8 {9 e6 N. g! d#include <QtCore/qglobal.h>
/ I9 b* o/ M7 |# z( }! O( L5 d6 P1 S0 u
#ifndef QT_NO_CONCURRENT
`7 @( d. O( P& {/ M& u& L
; ?; \8 v* H+ w4 u# g, H2 h! z+ V#include <QtCore/qfuture.h>
" y r4 W- D9 R#include <QtCore/qrunnable.h>- o5 O1 k& Z3 M$ B+ u- K3 Y
#include <QtCore/qthreadpool.h>6 y! n* W, N0 W3 u, [( K* T
0 n( b4 `, X6 ?. F8 b2 O
QT_BEGIN_HEADER5 `% x; U) D+ Y+ l
QT_BEGIN_NAMESPACE
& u6 s9 s# D1 X/ {6 s3 x* W; V ~7 R6 t) q: g5 J
QT_MODULE(Core)
" ]* q7 K/ U' _! r8 }- V
% x9 `9 [& \; ^& @* C#ifndef qdoc
7 O- G x+ t) Y5 D% D3 ~% S8 h5 {+ Y: {4 u' \9 N
namespace QtConcurrent {
- p- \4 i7 b) P: V) E
: e4 X* l# s3 Mtemplate <typename T>- o- n' R; z% ~4 P# I
struct SelectSpecialization0 N6 M; Q% _0 ^* b6 A! J% E
{
3 s8 Z8 v, H% L* I1 T q template <class Normal, class Void>
) n* |7 z5 I" I9 o struct Type { typedef Normal type; };
) L- V- W0 V# Z i H. B9 \* l) g& Q};' l$ X- E; \! u$ f" Q8 M
! G z2 P7 G/ Btemplate <>
/ E: v3 t1 P7 H f9 Q# fstruct SelectSpecialization<void>, Q$ z6 T. h7 n+ b% z( s; p
{. U& y; z2 D' D* @# J" Y
template <class Normal, class Void>
; Y" d ]5 i% [: U struct Type { typedef Void type; };* `$ K& D1 ?0 ]# b- P
};
* q7 T) `1 R# H: J% {* Y' f. ~/ h+ j4 U
template <typename T>) p& V6 w' n8 O) t( f, T# E6 W
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable2 S* A% W0 m9 p4 @
{7 Y7 c. d7 h& E- K: Z
public:1 t5 j: {% S7 z1 {* G
QFuture<T> start()
3 A# |& B* c. p8 r# [ {7 Q1 X. ]5 v* V
this->setRunnable(this);" F/ y$ l; s- z+ _- \
this->reportStarted();2 Y' h" S6 }/ F+ n8 x! t% Y& F" D9 W7 f
QFuture<T> future = this->future();' ]9 ]5 V$ z: S% E G2 X8 C2 L' x
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: x1 |7 ]/ f, s. T return future;6 V) L( e1 ^" c
}% q% R$ {# N+ B$ O
- ?1 z) u* G/ R void run() {}
1 ~6 n( i$ `# [" ? H virtual void runFunctor() = 0;9 }, E: b; Y9 l. B
};- y2 S, D6 G& W
( x x8 q7 k" v) f2 |
template <typename T>
, G) h. Y0 _ y- dclass RunFunctionTask : public RunFunctionTaskBase<T>
9 K* P* O5 t1 |: N. Z2 ~1 W2 F{
# ]% z2 X1 }5 y. k4 ?public:8 E i: [6 e1 d: Z. k! {6 q/ @5 C
void run()
6 Y9 \* F+ g- c {
% y3 \) u) d; ~5 K8 y) M if (this->isCanceled()) {
7 _! @" [! G4 I+ m this->reportFinished();
& a" ?1 m3 l1 ^/ @# C! R7 E return;- H0 k- {) M+ |- {# [8 l B
}) e4 k: i& s1 K: n9 Z! ?. I
this->runFunctor();3 Q5 s# Y1 o, {8 G$ I7 m
this->reportResult(result);" P. V: s5 F5 |7 Y2 M0 j
this->reportFinished();
" a1 ~. _5 e* u9 `" t O/ n q }
/ V. p f% o( o7 D' d; n T result;
: Y5 t. F0 e; Z6 h* ?) q$ p};
+ F6 j; |* J9 t! t. ]: C9 y3 R8 Y$ }6 ~0 d/ \0 P
template <>
* |! d8 ], X5 Q8 L7 Bclass RunFunctionTask<void> : public RunFunctionTaskBase<void>& O5 o' m/ ]+ W, z6 ~ h6 K% e
{
( u# R9 h- z r& Fpublic:+ R( h# @" Q3 m
void run()2 T# f, W7 r: N3 D9 c- e
{+ e9 N3 C0 F& b- |! |5 v
if (this->isCanceled()) {, P# o4 z9 j$ ?$ _6 [/ [: i5 c# T
this->reportFinished();/ l- F# Y+ w5 ^" H, p" E$ q! W
return;' K* M: |& k% K" ]/ r8 c' ~
}
4 |# V; [& z/ I, T* p this->runFunctor();& ~# \* R1 X- s- X
this->reportFinished();) m3 N& W5 W3 U; g! V
}
" r7 A1 x/ b4 S: L};
" U! U9 p5 _9 {; a; P
+ m5 ~/ A* v/ x9 Z# T- _$ I} //namespace QtConcurrent
7 b# [) ?4 S) C% x: K; Y( @8 {' { F* V7 K. [3 `- x; q# a
#endif //qdoc
) q! E( s8 v, j d; M& f$ ~8 h5 Q8 t2 p
QT_END_NAMESPACE
) n! v% Q3 q( VQT_END_HEADER+ \1 h4 @0 u% r6 J4 u! d
4 l$ I" j- _8 W$ Z* u! {* u* X9 a
#endif // QT_NO_CONCURRENT9 q' [ [1 r. R1 i3 m1 b$ T* k
2 U8 i1 K- Y4 x1 `2 G8 W! U7 J#endif
2 V4 h/ M5 c2 F \
' g2 w8 K( h4 M, c9 M m; T% \ |
|