|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
5 i: {) b5 v3 v% J0 g- p/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: U3 \0 h$ E* x# i% Z! [5 x0 b0 `; ~. R' N r5 ^+ l$ V- r. x- ?
这个头文件内容如下:
, A( N( q4 P. T$ K5 n#ifndef QTCONCURRENT_RUNBASE_H
8 `. a1 `& i: s2 O3 Z! o#define QTCONCURRENT_RUNBASE_H
; @# C; W: Y# e& m9 `2 N+ v) ^- C" [3 \- |- y b, R
#include <QtCore/qglobal.h>8 A" |: {; a" B8 v9 p" W
/ j; @/ @1 w" y( R2 n6 Y) o#ifndef QT_NO_CONCURRENT; C7 B0 I+ I! }2 x0 \
8 J o& X( D) n+ U#include <QtCore/qfuture.h>9 x2 U: c F/ Q6 f* c
#include <QtCore/qrunnable.h>
. J, t) q. d* u3 ?0 g! t6 p i, K#include <QtCore/qthreadpool.h>
' C0 z" |: w6 H5 }9 t2 o5 b
$ o# ]) i: F: u. a! s$ zQT_BEGIN_HEADER
, I. c5 _( L5 T- E, M# o) ~+ JQT_BEGIN_NAMESPACE3 U) C3 R" A6 m8 u0 ?' S) Q/ a
% U8 D7 {; I( g7 ^! E! RQT_MODULE(Core)% F1 c, P3 }" b' l
) Q1 V/ f6 U7 T% }/ k' }$ r
#ifndef qdoc
5 j1 j( S8 k* T9 ]4 o' B8 K0 F" X. R% T
namespace QtConcurrent {
8 ?8 b D" g# O* h2 Q( y! J8 I, i% q% T% g( x3 F) E
template <typename T># A: U% h1 G: A
struct SelectSpecialization9 f0 Q" E9 ]. s, w5 w
{) w. N+ e {! c2 u7 M& S! M6 z
template <class Normal, class Void>
. X: F3 {" I8 j8 Z: R& X1 b' l struct Type { typedef Normal type; };! J# M; V" E4 m# \/ _+ q
};
; \1 ?! h0 o4 Q0 u* q6 a. `, m' p" y# B+ q
4 q; a2 _1 v4 n6 F- n6 Utemplate <>2 E0 j1 g; f3 |6 h% M/ w7 }! z
struct SelectSpecialization<void>
q" J3 B' ~ {! E8 h! E{
! I8 f+ ~0 z/ B template <class Normal, class Void>3 D! M5 ]+ \( F0 K" u0 ?! c! j
struct Type { typedef Void type; };
- s, B: E; ~) ~5 X};5 Y7 w3 |% p* z3 h) z
& E% R, l; f& t$ d! c1 x& H& ntemplate <typename T>
0 x# p+ @7 M, _# f1 |6 ]class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 P/ p) a- D! K: v6 ^{; Q5 s8 `- ?/ d
public:
; R. J; B5 U4 M3 f s/ U QFuture<T> start()- d% h6 y* p( Q" r$ n# O) d, V& }! a
{6 V) K7 }+ ^: Z# W9 e9 G
this->setRunnable(this);8 I. _6 U. T4 c$ N
this->reportStarted(); W1 c$ I; e9 V4 y* l+ y
QFuture<T> future = this->future();
, F2 S- j- W! P' ?0 m7 | QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
7 I0 c2 e% C" q" K, v5 U! \ return future;
" j# U" A) t E0 z3 h: K2 ] }3 T+ ?" @4 ?8 M* [
8 J& q' B z0 o4 b( U
void run() {}7 E6 m5 Y$ S3 f3 z# U7 h
virtual void runFunctor() = 0;
3 o) E0 X5 Q/ Y6 m Y. L! D9 F+ i};" `7 }9 ?4 C, o& \
0 p# O C I5 I3 v' _* O- |7 w+ E
template <typename T>3 l2 B% s: X6 W Q( t
class RunFunctionTask : public RunFunctionTaskBase<T>: G$ c% K- j" x( ]% }
{
* G: z8 o0 l# F) ~+ L& \6 ~public:
8 W( \+ w t" u4 Y' L void run()( Y3 K& n: O1 M' F
{' N3 O: }, g7 j2 g9 j: A& g% p" P- x
if (this->isCanceled()) {
; W+ ~7 ~. W. Q7 U* c7 M this->reportFinished();
- m5 t, O8 @. T$ f; `5 g return;
: o0 `( g/ Z; Z }. O* [9 N, e! k& ]
this->runFunctor();
! [. E1 x. D. w { s4 V8 l4 z% I2 b this->reportResult(result);( y1 |$ ?& H0 \& Z. b* N
this->reportFinished();) l% h9 S) d8 R2 `$ ~0 i, ?, u
}) N( Z7 V% e5 b+ C8 V+ ]
T result; R! }; C3 Z/ p& p" [5 m
};
2 v* P% ]- y( V0 m8 l: h2 z5 r4 {" g. h6 m7 ^" q. R# M8 H. Z6 o* V
template <>
$ W7 q2 K1 |5 g5 u) J, Aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>4 P) j& c; M+ b5 X1 C
{ c# ^7 M; T d% F
public:* z1 n ~# G* t
void run()
# G1 g m' I; D5 q {
+ t; D) y1 t- e" ^: s2 \ if (this->isCanceled()) {
( N, b* f; K5 v j2 i this->reportFinished();' _5 ^% `2 T% Z& \0 D4 O- p; c( m# G/ @
return;
* \% r6 j3 u8 ^5 ^% W }/ A& E$ |$ S/ ^+ T( \
this->runFunctor();
6 \; u- b& n' [& h this->reportFinished();0 q: K0 V5 x( @# x+ z
}3 i) ?$ D5 v K+ L8 x
};
( Z6 M) \$ P" i5 h. b
5 N5 a! W8 I- ?" ^ {2 D6 G& a} //namespace QtConcurrent0 M) e, s1 y6 K1 A4 K
$ S" \0 X$ I3 z, T#endif //qdoc+ d, `/ M: m$ J' p
k: G1 D/ g& {9 a/ a1 B! }: S& _
QT_END_NAMESPACE
& I. D! \5 H2 A/ B( E: v( yQT_END_HEADER
; S5 S: a9 T+ w i
2 f' w1 C* c9 H; M! J6 P3 o6 x#endif // QT_NO_CONCURRENT! ]; j/ n" c) C5 l m
2 ^3 x4 R+ z" F#endif. Q7 b9 O* \7 H* P7 }
5 G4 B5 ?9 p* n* P |
|