|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; c5 c+ n; p# ~- }4 \: Z
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
$ i% R9 g7 |2 i V0 d- o& g; w6 U; M9 |
这个头文件内容如下:8 ?, n- @$ N0 ~) f
#ifndef QTCONCURRENT_RUNBASE_H4 g, C3 n9 z' c. n/ \8 s- {
#define QTCONCURRENT_RUNBASE_H
- h4 x3 A j( { n; R: \' o n1 q7 U# c! U, c& ^
#include <QtCore/qglobal.h>
/ q2 ^) w6 I: A+ H1 k X: r6 U6 Q p/ o, J) y) L
#ifndef QT_NO_CONCURRENT! I* r& ~2 V2 K; v
& O) z$ d. C4 L' Q/ d Q: m
#include <QtCore/qfuture.h>& x8 g, \% @8 |2 G" m$ h& _
#include <QtCore/qrunnable.h>
! }* b! }' M; V1 ]( F#include <QtCore/qthreadpool.h>
( z# l6 j* U1 e% z3 v, t% z2 `! b0 d: b: m# _( n% R
QT_BEGIN_HEADER
; A( o4 y% w8 ?QT_BEGIN_NAMESPACE% B3 e% \+ n9 `; q8 F- n
1 T: w+ v! Y: p0 k T8 IQT_MODULE(Core). b8 z$ M4 z; c: ^" @
6 g+ ?4 _2 z, l; ~& o
#ifndef qdoc
) _* |7 S2 W, m* j5 a/ N' i) l: L; _, b% X% r
namespace QtConcurrent {0 H! B! X: [0 X- `+ f$ n
. M6 P+ M; X' |6 ptemplate <typename T>
2 r0 j8 v; k8 r; Vstruct SelectSpecialization
( T4 F4 S! A- J{
. @: E* o& Q# q W0 ^) ?& p, G2 H template <class Normal, class Void>
`2 b; P2 ]* t3 o struct Type { typedef Normal type; };
# R# ~7 Y7 i8 {0 _};
6 M& V, \ i1 U2 i, B
# z' G$ k0 M+ d" R3 k; mtemplate <>
# ~6 T' C! N: {9 w( j4 ^+ Ostruct SelectSpecialization<void>
3 l/ }+ Q, s, q{ v+ |! c2 j- i* L' I+ a* J
template <class Normal, class Void>
: j2 x/ T! S) L* J, v6 T struct Type { typedef Void type; };- q f& k) b2 w0 |+ ^ N( F
};
, f: ~: `% U2 z6 o5 ?: {2 x+ f. V) P' B; ?1 ]$ u
template <typename T>
1 P* f o9 I$ g4 Wclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
+ W* G+ U, X9 j j{
( P# A0 M! l7 wpublic:* }- W# u. _) l; h+ s& T* f C6 d
QFuture<T> start()
- O0 u" i! R% w, A+ h {
8 [, F. M& f& I W5 I# w! E this->setRunnable(this);
$ |7 _# ^0 I2 @( _" s: e this->reportStarted();# @8 o" ~. _' h
QFuture<T> future = this->future();3 ^+ B4 y [% k" y
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: v$ P6 H7 Z7 j; W; C/ ~ return future;6 S( E6 v% I) E4 H" I6 |! `
}
7 r" C8 o% q6 X; a- T3 q2 ?9 U; G6 s3 ]3 ^
void run() {}
" V" `3 B! G( I+ X virtual void runFunctor() = 0;
) t8 S7 \: P' M7 P9 d};/ f: j/ O6 }0 E4 r# E. }; _9 \
/ W4 b, S2 g6 o3 v% etemplate <typename T>/ R! p" w& O" Z }$ J- U( ]# M
class RunFunctionTask : public RunFunctionTaskBase<T>
8 t' V6 x" D; w% y0 G5 _{
* y0 ^9 _7 b% m8 Rpublic:
) S; Y. D& [ i# R. U void run()! e. O6 D# k# t* G9 S$ m; K/ [( m# @
{
" M- |' s) O9 }* d# T if (this->isCanceled()) {+ \3 V. @! S& \
this->reportFinished();) _& C& c6 j0 d l5 [+ b
return;, T' b* W; P' J: f' ]
}# X; \! v2 G9 e' Q* l
this->runFunctor();2 n# ?9 f4 H5 v1 B( w
this->reportResult(result);# J) p! u( a. ?/ S9 M0 h2 H- d3 c
this->reportFinished();3 j) E6 A4 I: w
}4 `3 ]9 i/ H* ^; ^
T result;1 X: q/ c) T4 K9 ^- u7 C0 m
};
( U, E: j% ~) z0 P6 K$ Z
7 h4 B% c, ~7 J7 h/ a% r& ]template <>
2 ] Z3 g$ [1 zclass RunFunctionTask<void> : public RunFunctionTaskBase<void>9 M ^; N+ o2 R! A
{, r0 S' W. D+ X% `% m6 J
public:/ L7 b( }0 k% {9 l
void run()
5 t5 r2 }, f0 p. I4 j7 ] {
7 M, ^+ [/ `3 M3 Z/ H3 \( l if (this->isCanceled()) {
3 e8 m7 k% |+ F7 _- R3 P this->reportFinished();
) f+ a) B g$ L C6 i3 o return;
, g7 @9 Q+ N: y% K4 S: Y4 c, q }9 ~6 a+ Z% @1 N& R! {, T! d
this->runFunctor();* Z/ G0 U, F( m& N& o K9 z# ]+ B, K
this->reportFinished();/ ^1 \% J X5 a) a5 c
}3 R" @2 F5 R# ]! ^9 T
};
' m9 l9 A! H6 K* K' i2 W- \- }4 T
} //namespace QtConcurrent. K! B8 D; V" {$ N1 B) L
3 u* s; M/ a( `% A [, o0 Y! j#endif //qdoc3 z7 i8 {" L% G+ N! c! g/ s
# f. d: K4 o) uQT_END_NAMESPACE
3 f: O% |0 T' UQT_END_HEADER
! D0 M/ l' B4 T5 |
3 S) A5 x. n" Y: ~. Y2 e#endif // QT_NO_CONCURRENT9 x/ t7 {" R4 a0 q/ v( M
1 O/ I2 d7 F/ G+ C9 g) B! e7 l#endif
! L6 m( ~; ^$ u5 E# m
' ]# o% F& E+ a6 i) ~! e( ? |
|