|
|
我对syslink进行交叉编译到arm,但是出现如下错误:& a) K9 B' p7 e. q L1 i8 u8 u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% ~: N- N/ [ ~. G4 L, W4 i8 q3 p7 h2 U. W. |, G
这个头文件内容如下:) U, p* E) u' _/ {9 V
#ifndef QTCONCURRENT_RUNBASE_H) ]0 u9 _2 V8 V: o
#define QTCONCURRENT_RUNBASE_H
2 j/ {- ~2 a" r8 @5 M+ {5 Y( z4 N! U" A! g& T2 t; r
#include <QtCore/qglobal.h>- o% z. C% @" ?
2 w! L- Z8 X( M ?3 `+ ]& P#ifndef QT_NO_CONCURRENT
5 n9 y6 m2 Y& l) ]
6 |1 O: }( Q0 l+ N#include <QtCore/qfuture.h>
% V) P& G; d) R7 Z#include <QtCore/qrunnable.h>1 ` V; {/ i0 Q
#include <QtCore/qthreadpool.h>/ h1 C) K) p( Z- q G7 M
; g' V% L; l( @0 FQT_BEGIN_HEADER
6 h$ s G7 T5 O( t: S+ M* ]# wQT_BEGIN_NAMESPACE4 a* D0 b! C6 _6 @( f9 F& t0 v
: v* i% A# l2 }& p0 O* GQT_MODULE(Core)" A; U1 I0 K! B6 a* _9 x9 N; `& U& e$ `
/ a. |- t: J& p. Z# ?
#ifndef qdoc# r( g. l( F) M/ ~* R" Z
+ }6 M* Z! H4 M: h3 R$ j
namespace QtConcurrent {
, e6 m z0 m$ A; o, E ~! M+ x. E o4 `- i# K
template <typename T>% I2 d/ T( i) e5 f- t2 N- B( c
struct SelectSpecialization
3 K. w: b* u8 c9 K% Y{
9 _* g& M0 W9 K2 g$ H template <class Normal, class Void>7 q) ]' N( i" e0 ]; ?
struct Type { typedef Normal type; };
$ k& O; y# t4 `! P3 R6 W};
. @. r& ~3 {& F4 }" d% D( F2 G, L6 I/ i, o; C. F, z1 G
template <>
/ X. \& G+ X1 Z1 wstruct SelectSpecialization<void>
H8 W! ]' m7 M( L# \9 q& A{$ w, l4 s. E0 R, T v- b
template <class Normal, class Void>
+ u- \2 T; a3 x8 R- v6 E4 u0 g struct Type { typedef Void type; };8 ]0 g4 `+ f! S5 z6 L- s' e
};# B- Y) H! j6 ~
c* g j1 {) h9 d0 Y
template <typename T>
# v8 E4 D* ^4 q+ V' eclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
8 P: [8 c0 Y9 e{( L) l# W: R3 X$ T
public:7 C, m, F. C$ u. e
QFuture<T> start()
$ [) I' o! s4 A! C8 N {6 [. _' c! D& j# d( ?
this->setRunnable(this);; [4 N- y5 P8 V1 Y/ U" v
this->reportStarted();
2 S3 |/ C" z/ ]6 _; `# ~) M QFuture<T> future = this->future();" f. [5 J6 [& f5 Z: a# x# S
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 F1 ?8 { }0 k6 k u; ]3 @; e, d
return future;
2 J. O) H/ s" X' X0 m }2 E9 y) t( _( g5 c* p ^4 R9 J
) ?) G2 w$ ?8 Q3 f void run() {}
- L6 b; ~$ Q: {+ q c4 G8 N; j virtual void runFunctor() = 0;
2 {. n8 G- l0 F( ~/ c% l& o};: \& {! h7 t3 {! Q, G" U
; U+ o. }9 \7 P3 C
template <typename T>0 T+ A% _9 H4 M R6 W0 C
class RunFunctionTask : public RunFunctionTaskBase<T>" n( D) i; u( W+ @0 A$ m
{4 x" M7 t* B. M# V' n+ t) Z4 L
public:
0 S9 Y$ C9 p( ]6 ]6 O* y void run()
4 G4 F$ R: }" m2 J" t) ]! } {
2 U L+ L1 p" C) q if (this->isCanceled()) {0 ~! C2 u8 g8 Z' n% I
this->reportFinished(); O! l1 M* b. p- i6 H
return;% N, F# L3 B! Q* u U4 J
} {* N6 a# s: z* H
this->runFunctor();% ~3 b/ X. c/ G9 D3 w/ G
this->reportResult(result);
' `; I2 I y D w6 t this->reportFinished();
1 l$ l5 p- `1 F3 y* U1 n$ z* | }3 d4 L7 t% v/ d2 ^! _* \
T result;
) o8 }' G) s1 ~" u' A};
; H1 C9 F2 K$ l
2 y' z! s- D% Z" p0 e/ |' Ttemplate <>
" @7 _+ y2 R+ ]3 L* qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
; K+ T! k4 R; v) q1 G{9 K6 K( C% `1 v1 |, V8 ^
public:
, g: G3 \; d1 A4 {* _. N5 N) j void run()& E$ M$ _$ z7 ]5 c. v! r# t
{
) y& O0 t5 {& c9 k$ d if (this->isCanceled()) {
+ i) R" A4 E3 j7 o: D u3 v this->reportFinished();# [5 l& {; C" x
return;8 b% S1 [; ^1 a5 P B* B: U
}6 \$ h- e4 l0 R4 L" C5 q/ a
this->runFunctor();
$ i. Q# F2 r+ E! { this->reportFinished();
4 t7 Q$ f9 s+ R }
* d `, E6 Z1 K1 `* G4 X5 U2 h};
- ~$ H- a/ \/ V7 K) P) }" S
- h+ ^. o- U' \5 o# y N} //namespace QtConcurrent, `) Y# a& ?; y, L' c4 e
: g3 I) r- }8 y- e- \
#endif //qdoc
) @4 E% }3 W! R
0 q4 y" }% g; ~6 [5 s! @QT_END_NAMESPACE
3 A( k: i1 K: z9 F! o7 ^& OQT_END_HEADER
1 v2 t0 E3 q2 U+ @+ Q7 u/ o- D# g
$ r: S4 o3 k# u' _#endif // QT_NO_CONCURRENT
/ s5 A1 q+ a) K( p
' D9 L3 g1 S5 h7 \9 w K- B#endif
! G1 U7 S2 s0 e b% x% E, q; L" z/ d1 R0 z' B0 T
|
|