|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
. J ?: C; V: n+ @/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, m ]" M. r' c: p! k$ N- v1 Q& |% m0 w% P0 Y
这个头文件内容如下:
1 a, i( p$ Q# N4 x" n#ifndef QTCONCURRENT_RUNBASE_H
3 P# ~( U" h& R#define QTCONCURRENT_RUNBASE_H% r+ t8 ]1 r. Y, B
2 d+ y0 S" U3 h3 l3 c/ `4 a#include <QtCore/qglobal.h>
% s' _. E& v7 K' \$ a5 ~) O( V6 ? @
#ifndef QT_NO_CONCURRENT1 ^1 b* q- B: R3 N/ R4 v
& t9 A' N9 a& R; w6 P8 X#include <QtCore/qfuture.h>- _, b7 X( [( y- A; X
#include <QtCore/qrunnable.h>- {9 B* H1 P& R7 D0 j
#include <QtCore/qthreadpool.h>
* N: S3 A1 y/ T' r4 Q& W/ o; u y1 r* _& X6 K$ m, _
QT_BEGIN_HEADER8 y* \9 W, v3 l7 Y7 D% F
QT_BEGIN_NAMESPACE
, {& b# M% @7 b. p% R0 K0 S) w
* Q3 P% @9 K6 R. y; eQT_MODULE(Core)
' v% l- s H+ c" }/ |$ v2 u& m6 k& [0 V. U7 u* E; F
#ifndef qdoc
3 f) M6 h, Y1 Z& I
- w1 j# V( X6 M4 E9 ^% L% anamespace QtConcurrent {( u+ O8 {6 `2 O# l& M
# I4 l- W/ M" u* Ntemplate <typename T>
4 m) j* X2 {) b+ R( F3 X+ c. ]& Xstruct SelectSpecialization8 _) w* N5 a; |5 T5 a) ^/ \
{9 X7 @7 k. ?: p/ o4 r4 f
template <class Normal, class Void>
% Z- Y, w" ?! r8 O struct Type { typedef Normal type; };
+ {+ W4 E B, M4 }, N};
. e0 \' H+ K0 P" Q; [4 n V% u$ _. ^8 S4 ~; H3 S: i7 }% R7 @
template <>+ X8 |/ n6 E2 U" M7 W' q
struct SelectSpecialization<void>9 n, ~. }' s3 M3 F: T3 p& c
{+ Q7 G) S9 z3 q% R; [7 n4 j
template <class Normal, class Void>
3 q6 @% ^0 Y3 h2 i1 | struct Type { typedef Void type; };
( }$ m. G/ S: [};' | s s5 _7 H. X r E
9 w& X5 |9 a0 A% ^2 j g* V: p, G$ i
template <typename T>
9 a1 V9 Y/ |) X. I5 E! j' Yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 _4 {* a; a# W* q% m5 q3 E. R{
% }0 w& n% ]" h, g8 v7 R) P, ~public:) I1 N& U( R0 y, D
QFuture<T> start()/ T7 J- a( a5 U1 e
{
3 [0 ~7 d6 N+ W0 ~ this->setRunnable(this);
0 f, D4 a3 f% V this->reportStarted();( _) W" s \8 \6 w5 @. f
QFuture<T> future = this->future();7 G, Q, W8 z2 t& A' ]
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, r) O# b" _4 V2 b5 _+ H return future;# d3 \/ h& p* T/ g
}; j: V* C# T- X% C
; \- A8 t* Z% ?! J; U& t& z void run() {}' l0 A! p' _+ l/ S* g+ {
virtual void runFunctor() = 0;! P) ~5 o) D: ~/ L+ N
};
" D7 ^+ c0 @% p
3 Y, I9 v. F9 ?( wtemplate <typename T>
# f" n& V8 g' q0 S+ R& Lclass RunFunctionTask : public RunFunctionTaskBase<T>6 p) q8 e1 d1 Q* ]) K5 C
{. D; t. K. j: ?2 V8 B
public:
- h( I' N+ q0 K* U0 p void run() u4 r& p& h: o( J$ h4 |
{
' O+ _% g! @3 C D if (this->isCanceled()) {
+ [6 d! p# T, Z! ~* v2 ]5 D9 o this->reportFinished();+ E8 M7 {2 f9 @# v9 c
return;
1 f! p; T: ~: s2 e: ^' X& b0 ^ ~ }' _7 g2 \ W& k9 y- L- S7 [! X
this->runFunctor();4 }, Z" V# X- W* i: ~5 L
this->reportResult(result);
( ^- j1 d i# _9 a9 m- B# Q* I+ I this->reportFinished();9 U" c' t+ D$ Z C% Z8 q" [
}
! ], j. C" X- x$ v- r! W T result;
5 H) L) S6 S* b1 E# b7 e: D};0 A( o$ p, h& z
7 q$ l9 A# V s6 G" Q
template <>
) p) a/ b, E. h' e5 S Uclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ w8 F4 Z8 W7 c- p{ X& ]# z' G( R7 j
public:
/ g: y3 [. D: k" `6 c' M+ p void run()% R$ e2 ` _" r' Q9 j( Y0 ]
{
9 ^& {: q# h3 F# c5 Y1 p if (this->isCanceled()) {& D) m6 ]: u# M
this->reportFinished();
& n, s1 s# g6 @& ]$ P9 U9 b; V return;! N/ a9 W7 k8 y
}
- w7 K) r& }/ n. W6 w this->runFunctor();
5 W+ t; o9 l1 i( c+ Q! R! s this->reportFinished();, s, \' R& a# L3 F- ~7 a
}
0 N; Y* Z9 ]8 N6 N! M+ k4 H};/ r5 n+ Q% u- S# H- M
3 k2 j6 I4 A c2 x9 G: P" M: t3 ?
} //namespace QtConcurrent% w- ~# n0 B% S8 f
2 R5 A* u, O) c8 v0 w' h, G7 ?- t#endif //qdoc
/ a" C: l* u, N$ y! P3 N% G+ ~; b; x( X/ l' C" Z7 O3 t
QT_END_NAMESPACE, K# k$ y, W) P' ?+ n$ M: l, C+ ^
QT_END_HEADER5 I, X1 C7 H. l1 j' m+ U
+ E/ T/ u8 U% Y, ~+ Q! M% W& u& r6 x#endif // QT_NO_CONCURRENT! D& D9 B2 O" \$ M
5 L k! }/ g( t; [7 M#endif7 E8 R/ e# h: i+ O6 p
$ K+ k0 h. R2 C
|
|