|
|
我对syslink进行交叉编译到arm,但是出现如下错误:: b6 M7 u+ T7 J. G, k. s9 o! ~
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, \) o: o$ j7 a
9 f* m+ c: j" _# `& U0 _# m' s7 I这个头文件内容如下:' E8 y# c4 m2 U ^3 R' n4 }
#ifndef QTCONCURRENT_RUNBASE_H8 ? V `" n6 H y
#define QTCONCURRENT_RUNBASE_H5 q" Q4 A/ I& Y3 q$ `$ F5 Y
5 T% F, ^- v: M; l9 Y
#include <QtCore/qglobal.h> [1 b0 g! E3 B+ a2 [: R) R
0 ~# ~% T1 c, {& {5 M ^
#ifndef QT_NO_CONCURRENT
: O0 Z$ q; U* U- x4 M$ x
9 C& s( T# z- x9 {# b/ h h" V#include <QtCore/qfuture.h>9 G/ E) J% `% U* _" @0 f
#include <QtCore/qrunnable.h>
/ e0 k+ R/ E$ u& S+ @; j+ ]) T#include <QtCore/qthreadpool.h>
+ a% {) Z/ ]5 L/ Q# F+ O2 e( o- ~( H7 m" w4 d
QT_BEGIN_HEADER
: I7 c4 _. y7 C1 h: v: nQT_BEGIN_NAMESPACE U+ q2 I. h) O% W* Q* N4 ~
4 p7 a7 B* R8 c1 Q6 Z# Z* C2 d
QT_MODULE(Core)$ W$ r# ^8 P$ u4 r/ k1 l
0 B- z5 L* g8 C* @- a L#ifndef qdoc
5 h x# D6 L" g/ ]! b7 C$ }5 r2 Z; k# F1 E/ N# Q
namespace QtConcurrent {7 Y' ^" |9 a, T7 y% w4 _) R* y, e
5 L, r; U% S( D% x) H9 o0 c
template <typename T>
* @" r" @% @' Q+ B% F% y# }struct SelectSpecialization
* n! z9 N3 @5 ?( G. b5 U{
' l% J7 r. }# y template <class Normal, class Void>1 G4 y3 \. F6 b$ g
struct Type { typedef Normal type; };! F+ }! ~% z( D& ]9 P2 j$ w' _; P5 _! }
};& Z& i$ o& a4 u1 `
* [( f b; b+ P
template <>8 M2 f: n, o Q
struct SelectSpecialization<void>' W% w; t0 C2 _5 D( E" p; k
{# I. L3 D1 `* ~8 l3 y! Z
template <class Normal, class Void>
# l) i! L6 e% _' |$ i7 E0 U struct Type { typedef Void type; };
* L6 j y" `9 H};' B9 L( O' R1 v$ w# c- Z9 Y6 i
: b/ S- S( K4 R1 J1 o. @template <typename T>5 ]" [, Q+ l7 E h0 V
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, N) s. k; D9 |; s{6 Y J# b) @, F- m, w
public:' a: ?7 y$ x( _
QFuture<T> start()2 R% D: P, K8 r+ X- E$ n
{
; t, }. G& Y) A' U this->setRunnable(this);
% h! Q) o6 n) ~0 t2 s% M* a this->reportStarted();8 Z! O+ o4 }# R
QFuture<T> future = this->future();! l" y/ ]) k. |% d
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
& m; N6 H5 H" G; X0 @% ?7 z! @ return future;4 J2 E+ s$ o- A* U1 r1 r
}
9 L& h2 J& q. L+ j4 k" U0 a% o- I. J
void run() {}7 c- D0 ?9 |3 e
virtual void runFunctor() = 0;
* `9 l4 k0 G5 h i( D1 s! f9 F; t};
+ |/ _+ A/ ?: C4 {" E" S; d4 Q
# M3 T' g1 ~3 z: `template <typename T>" \! ]/ e" C3 a. M+ f
class RunFunctionTask : public RunFunctionTaskBase<T>
8 Y3 K# S4 M8 y! C{
7 R4 l: C* g L' T+ T9 cpublic:0 r4 n0 G, Q: S% W4 a1 ?
void run()8 c/ Q1 U4 T. h" T; {7 Y+ Q+ x
{
' o# g* W1 o2 S! G( Y% F$ I if (this->isCanceled()) {
$ p$ {7 ~$ z( P9 f5 a$ n$ L this->reportFinished();* K/ x" Z' I. L! K. l8 }( y
return;4 o/ c9 ^& d. Z# P* z( h) M
}
6 Z4 l. U0 | x i this->runFunctor();8 ?3 l* t' j2 ?% O4 o& Q" j
this->reportResult(result);
: E$ h3 v- c4 w this->reportFinished();
4 A" P' H3 _( p }
0 J1 H; x, E# `) P, P x T result;- r1 E6 C5 x+ g* c
};! i, O5 E% T+ t8 S& o) H, h# I, p
7 k+ Q7 H3 d! Z" qtemplate <>
- C) m- f1 W1 N" u- v0 Q$ e$ eclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
7 O# H0 t- ~7 i7 r$ i{, A9 E6 x0 P% j3 k7 R' f
public:
2 e; f. ]/ O9 h2 f void run()" ?. ^) I# e" u ~; _7 l2 k% U. ^
{
, r1 X$ X h- K( J' k% S& J if (this->isCanceled()) {2 }! M2 A" T( L% ]- E! j7 `4 I
this->reportFinished();( t. p6 E, g4 J ]+ ]
return;
4 B6 c' G, D) T$ a }
4 l' k# @# ]" j* o this->runFunctor();! V% M! ^: {# X8 f$ y( ]
this->reportFinished();
( A4 ^7 }. o2 ]% C4 Y% S* G* F' S }: s P6 A" A2 N U u7 e) y
};6 C: m9 g5 e- t8 ^3 ]1 x
+ r$ M7 k, Z& P3 [5 w
} //namespace QtConcurrent" E1 @* Q9 u _0 I
- ~- {& R8 v9 {8 Z
#endif //qdoc9 t8 N; u4 ?8 d% S: B8 r& F2 ]
) u w3 l' p0 ?3 m8 \7 iQT_END_NAMESPACE
8 y/ j, `% R& cQT_END_HEADER3 ~& I4 Q0 o- x
- G ^2 ]( m7 K1 v5 Z#endif // QT_NO_CONCURRENT
' b( e; r. c4 g3 O! J1 L- m* q- e" X1 I/ H
#endif
1 g+ `; Q: c6 \) M& @
( m, }8 {- r; d" d8 e+ k; L |
|