|
|
我对syslink进行交叉编译到arm,但是出现如下错误:7 ] @7 h, c% q, |! k1 s0 Q4 d
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 b6 a7 v) f! C9 `8 o0 l
6 Z+ y0 e2 o& Q, m这个头文件内容如下:5 q; w, o n6 n: a
#ifndef QTCONCURRENT_RUNBASE_H
; l! [& }1 M, z#define QTCONCURRENT_RUNBASE_H2 P9 B# p" S; z* H% D
& p- f" A' n* W#include <QtCore/qglobal.h>% @% y) a+ l; c
# I: ~$ C" h2 w6 a#ifndef QT_NO_CONCURRENT9 g& U* q- l; ]7 k5 C+ b
5 ?! d+ K' x/ i1 m5 S4 a7 @* k6 p* v#include <QtCore/qfuture.h>
' W3 l1 M, O. `' j#include <QtCore/qrunnable.h>
% d' T2 [6 `3 V8 N& ]+ j( G#include <QtCore/qthreadpool.h>
1 E* f, O2 Y' o; e$ G. F3 S0 w3 M
QT_BEGIN_HEADER6 Y7 f9 p; z! p/ l l7 N
QT_BEGIN_NAMESPACE: H) b( s8 C' x9 Y2 ^
& n x) C" S0 b. s
QT_MODULE(Core)
" w- E: S' Y, @% x0 {7 F# D1 B5 `7 O. m7 j( H
#ifndef qdoc
) b X; ^7 ]6 A" K
: x Y- Q' E7 G# D+ @( Gnamespace QtConcurrent {2 P7 T2 i; l# {$ s
' r4 o# N7 _8 D% g( ftemplate <typename T>
; [& Q! v0 N9 S4 g% tstruct SelectSpecialization
?! N& L2 g1 N6 J9 E+ f9 Z7 p{% |: \. P) \; y" X X
template <class Normal, class Void>4 ^; m C9 A2 f7 v# d
struct Type { typedef Normal type; };
7 J H* r3 z; }3 m7 Y3 I2 C};
& {/ H$ w5 O! U9 ^
0 a4 W; o# g8 S' h$ L: Q& |3 `- Vtemplate <>
8 O- f6 ] F( X# M' M( rstruct SelectSpecialization<void>
; i% S6 O( P1 ~; O2 T{
0 W, l% @8 o3 y$ J" U. @ } template <class Normal, class Void>
+ n* j M0 O* Z3 `5 W5 l5 U struct Type { typedef Void type; };
' w8 _$ e, Z! R; \2 f) O% x};6 Z( A# Z7 Z L4 s2 R: C- c
) I6 F3 S T' }0 F% F$ [
template <typename T>
/ I0 C' ^) T9 K& B1 \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
' E. Z9 E' |6 U* V t- O4 S, V7 e{/ J9 `: ~: W! K9 T1 ? Q, x6 y* e4 D
public:
% [! p4 l! z! S* t0 | QFuture<T> start()
, A7 S0 X4 m% t$ @! P. z# C; K {; }. [/ m/ `- Q% Z
this->setRunnable(this);. M, I+ L5 f# B8 t# R1 \8 _
this->reportStarted();* `* T% y+ A( A$ i) h
QFuture<T> future = this->future();
* a7 t4 t; C# D/ T& g* E0 y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);9 U C( ^# h- H& x% p: h
return future;
* r, C4 \* g$ ~ }* U! k/ ?' h6 E! i2 b, f
+ i) y# U2 l M1 Q( u void run() {}
: ~* H& Q# J# ^ virtual void runFunctor() = 0;$ @, g! W" C& Q. n
};
1 V4 _) T. o! T8 |+ ?" u0 ~- b! s
3 {0 m! N7 V l* _# Vtemplate <typename T>
6 y3 g" x# s7 y/ S# [class RunFunctionTask : public RunFunctionTaskBase<T>) H4 m# c5 K' ^
{( x& ?7 p4 \1 R7 A6 w$ T2 T
public:6 f. z6 [9 Z1 e6 ]$ Y0 T/ R, z
void run()
$ x9 s0 \' X! i) L5 O# D, N {
Q5 b+ C- _# I. Y2 }5 m7 Q) h if (this->isCanceled()) {
6 n6 K- A% s# @. t. T: Q this->reportFinished();
+ Y+ j9 s( M0 J" M# ?% b0 } return;
) c }" { b( F9 P1 R4 s }: D8 T& M- ?# S2 z
this->runFunctor();
( X3 F5 P( ~8 h/ t' F this->reportResult(result);
- f. x4 l. }: ^! C% Q this->reportFinished();
0 N6 L& g6 M7 s# g; f) ` }3 B4 J j, ]( a& ?, n" Q
T result;
3 V ?; P7 l, d% j, D};: ?& a) |0 ^0 S1 f! R1 a0 `' M
3 m2 g8 Z% p9 N2 b% ~6 @ H {" dtemplate <>, T1 h0 }5 T6 k3 e
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
) ^) D7 _/ C9 A/ P9 h( f/ j* a{
$ f! @. f9 t9 j6 wpublic:
3 [; r1 Z4 @$ v4 Q' i void run()5 E+ E# e. J8 }& R q
{
; O5 p9 L. ], p% V. m if (this->isCanceled()) {1 _5 o a. P4 r# N
this->reportFinished();
B7 g$ }5 I+ r- o return;
# f _* S9 J7 ] } E' v4 |/ p( M
this->runFunctor();" }' v- E4 s% Y( G& J
this->reportFinished();
- J$ D- S; z5 i X }
& _8 G& \0 T; v: r& u# i- N2 o$ c};' I+ m! H8 _7 F& M
$ H& p: v! [+ G7 E) @, T4 c
} //namespace QtConcurrent0 o; f7 p! w( K# X0 g( L/ M7 [1 a3 M
9 M* u4 x/ V0 s- r2 S' Q4 Y#endif //qdoc
$ Z8 q3 F y% V7 {$ j7 T; P. w- U* O
QT_END_NAMESPACE y9 d5 M4 A1 f
QT_END_HEADER
: O/ D) J1 X% n q& V1 N
1 `# k& I! }* N#endif // QT_NO_CONCURRENT
# n, d# Z$ y, g/ z5 ~; E4 a. ^1 F- J% J8 p; L3 [9 C. D' L
#endif: N% b* O+ \3 V5 s: r5 v3 y6 \8 \
N" t d2 ^& B2 a3 b |
|