|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 y4 i. g* X2 p" }/ I
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% R! ?# K6 f* h4 q
$ L2 k4 P+ N. o! N) h! ] G0 G# ~. Y, x这个头文件内容如下:
9 p. Q3 Z8 [! a0 X# O, i U1 S#ifndef QTCONCURRENT_RUNBASE_H
3 g( c0 x% l$ r4 s* {#define QTCONCURRENT_RUNBASE_H0 \( J& y1 g) S+ [
/ \2 A( k+ G# ~: f" j/ Q
#include <QtCore/qglobal.h>1 j9 [) e* S P' N) g! F
- u& E3 g" ~3 h0 {1 f' [' V) _
#ifndef QT_NO_CONCURRENT
& j$ x3 o) c; c6 G( {
- o G9 _$ v+ r+ }#include <QtCore/qfuture.h>$ n$ {+ v) N6 O! B
#include <QtCore/qrunnable.h>5 p6 m2 [7 n5 s. X* Q" T
#include <QtCore/qthreadpool.h>
& F1 C9 J1 O5 Z: p1 U! p! k4 G1 ~) i: Z. c4 ^; Z6 Z
QT_BEGIN_HEADER
( Q. R9 Z* q6 Z2 R% d$ ]/ w9 [! ?QT_BEGIN_NAMESPACE1 d( B# I) T: v! j0 l0 w
# |9 u" ^6 J) F! O8 c. ?
QT_MODULE(Core)
4 W, l. a8 D6 n, a: u* F/ z) Y3 D! H3 |9 {- Q) B+ Q+ `$ b
#ifndef qdoc
; ^3 D9 s( A2 ~8 P/ d$ ^# P% f3 y! m
namespace QtConcurrent {% T+ o; Q1 E0 I7 [( c v6 o
5 x1 O0 ?- ]5 h: E. y0 u# W5 o
template <typename T>
+ V3 a8 T/ w+ I d6 @' Jstruct SelectSpecialization, N6 Y/ f( @; K9 c& n, ?
{
( l7 k" L5 R! h# Q; }8 s- ~ template <class Normal, class Void>
1 h) a# x5 E& H" T struct Type { typedef Normal type; };
# h$ u1 B. F* E6 p8 S};4 l. N/ l3 p; C* X- o9 d* b9 W' T
* A9 }# {9 ? I8 \, h1 H
template <># ?$ G y8 w8 `# y" s0 v
struct SelectSpecialization<void>
, T* }4 g. \6 R% D9 m, R{
( l5 U# I1 @6 y0 k9 d3 r template <class Normal, class Void>
6 J% }* _# t9 U1 n2 X/ e, t struct Type { typedef Void type; };
1 p) y H) |. f8 ?; b8 ?9 Y% Z};
! i" I5 ^$ x5 E, y
/ w+ }* O3 F2 d; ^7 }9 j0 Atemplate <typename T>
4 F* h% o* f8 Q; T5 Rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable( j5 c9 G0 v* w- Z ~
{
; z4 {! z5 W6 n spublic: ~; Q1 c" F8 J/ s; m
QFuture<T> start()6 O0 M1 ]' T+ @# l
{1 J: T$ _9 t! \
this->setRunnable(this);
! p$ f3 N8 l% f6 ^ this->reportStarted();
) w0 |, o$ ]* C- S5 x$ [ QFuture<T> future = this->future();
8 {* a1 E/ [( n& } QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
) U: z3 C& w- n/ X return future;( p: @5 n/ Y4 b
}
1 C; y/ Z9 T- }1 q, \. t; n
) j) T, h) \* u void run() {} T& ?) f0 F+ v: d! ~( K% ^
virtual void runFunctor() = 0;
& ~, {+ j3 f- x) U1 N5 l};
`$ U/ Z; p/ k; g; e' |1 x V2 p1 n. R0 O/ K5 |0 c; V; x, m
template <typename T>/ [' V# f/ }, t6 J8 C
class RunFunctionTask : public RunFunctionTaskBase<T>
$ d' V# O- x' W* b( l* ` p" s{
: C. W- Q) ~! |' Cpublic:* K+ e( F" N/ N
void run()
4 C% J. W: V1 c7 V3 [/ s {+ K, n$ O L' b i
if (this->isCanceled()) {6 y. c8 q& V$ W( d
this->reportFinished();
; w9 M" K5 W; i4 q3 Z return;$ b/ o R" j0 @( p
}
8 G: U0 R& V" ?) d' B: y7 { Z( B this->runFunctor();& c+ i6 m r2 r( h
this->reportResult(result);# s; Z3 S/ W/ H% G- T" N/ g3 W
this->reportFinished();8 O8 f3 }$ s7 r) f- i: C2 Y3 m4 }
}
: e/ Z6 w9 E3 W0 x- w$ T$ V/ D T result;
+ T6 h& O$ {+ c! n( U. o};
+ f' {' H6 d+ m8 ^! f( M& w; f9 Z# m8 D6 Y/ G3 r `% Q* b0 p
template <>
9 M% ?0 g6 F I+ Z( ?4 u/ Uclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
- a$ d, O9 n1 d6 X{
3 U2 M1 Z e( [public:! _$ e3 C5 I8 m+ y/ K* r* X" z# B+ P
void run()! b2 S/ T8 b8 `9 u
{0 e' L8 }: t" C
if (this->isCanceled()) {
- t, k* T3 c( m6 t; y! L this->reportFinished();# s9 I$ O, G4 I9 M! d7 ]
return;; ^* ?; Z/ L/ @4 |8 P2 _
}: r: R! v6 E2 n7 d( Y
this->runFunctor();- m! k- z( r; H
this->reportFinished();' A. D/ F+ ~& |8 }( M
}
6 f: p* i7 c6 f4 F1 v1 X1 q};( l2 y* c# o. I( |8 |7 u# P, l7 F
. K2 A7 a8 L( Q: I} //namespace QtConcurrent
0 [ A& c0 L- s- e4 g+ B" s: A# w# q6 c8 _1 G
#endif //qdoc" G4 v* P$ k4 ?* t
( r1 l1 q" o( m9 yQT_END_NAMESPACE
& L2 [, I9 @0 T" X& D# f, g/ F0 rQT_END_HEADER
' J; }0 g' O3 ~# z% ]4 a, {
2 r) ^; D9 z1 D9 @8 ~3 M* j% O#endif // QT_NO_CONCURRENT
1 T/ P, e4 l- P1 ]& S8 I0 A7 h6 Q. A8 c3 U9 a( D
#endif. ]6 O- t8 ?8 z& ?1 Q
) E3 n- a/ ?- P+ S' R7 ] |
|