|
|
我对syslink进行交叉编译到arm,但是出现如下错误:0 _2 [2 S0 n U. v+ v8 C
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'6 r5 Z5 A9 W- i6 ~9 b- k# O0 z
% w5 Z/ u- i/ Z( \# |7 e! e- _
这个头文件内容如下:. _& m: t6 j' u7 a- z
#ifndef QTCONCURRENT_RUNBASE_H
4 r( d; |/ z6 ]4 Y) a$ B4 ]#define QTCONCURRENT_RUNBASE_H
( C: ?" k" g$ d0 }* \- U: H8 x* ^3 }. r# c) G( t
#include <QtCore/qglobal.h> `9 U, O; O# }: b
# _6 ^( V5 a L6 \
#ifndef QT_NO_CONCURRENT* u& Y1 q' q8 S2 v7 x4 n
! u8 Z! N( v0 [6 X$ y: }6 X% _6 f
#include <QtCore/qfuture.h>
) e1 x& J) ?: p, ?- e#include <QtCore/qrunnable.h>( }7 U: d* G0 q7 U' W
#include <QtCore/qthreadpool.h>0 J3 ~! @/ r6 b
; A; x" q7 b, e0 {/ A/ R, L5 tQT_BEGIN_HEADER( p3 b* v7 K0 `1 _& x& P
QT_BEGIN_NAMESPACE
& X+ a# I" l7 d" |: F3 O7 X) i4 i9 p8 N/ |6 X
QT_MODULE(Core)- T, h6 R5 r9 l: r0 x
7 G/ s$ \. X4 A#ifndef qdoc0 f* r8 E; e( O- G
6 e1 c3 \' W2 Wnamespace QtConcurrent {
1 Z/ n* l, ]+ A9 f5 M; f2 J1 D' R
template <typename T>
- F+ }% J# D! I# Z9 Z$ @7 L7 |$ a' nstruct SelectSpecialization
) O. x7 W0 p* p2 C) M' d{
% ^" o( g' C8 ^ S g template <class Normal, class Void>
3 W1 y5 ~. s5 M9 s4 _5 r6 f struct Type { typedef Normal type; };
( }2 a0 H6 Y) S4 t: I8 Q' Y6 w& `/ Z5 l}; V, w% N# j/ r( ?) x
9 d0 @) ^3 v4 S% u( T; V& ~7 btemplate <>
|2 O6 G% q0 [- }" Bstruct SelectSpecialization<void>- r) e" Y& y: i( Y/ J) P
{; ^3 I) v" \$ ^: v# f+ b
template <class Normal, class Void>
8 z6 g$ k, W) n struct Type { typedef Void type; };
( ]) _3 C/ A) r& I1 ^4 O3 n% \, t, G};
+ ^6 x; O* g: N6 v: G
+ w. i# T' T. Q* W: Btemplate <typename T>
5 S3 W6 |$ H6 X! L) |: eclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable3 m( }4 H# I5 P
{
5 a$ L0 i7 B" V. Ipublic:
4 l" E$ b# n" } QFuture<T> start(). ^' q5 o2 I# X: r7 c4 k
{/ y' f( h5 C6 c- u" a3 X$ k4 x( p3 u( `
this->setRunnable(this);. }, ]( J7 _% K) s6 U' t
this->reportStarted();
! {$ P- ^( F _$ ?' I8 Y( d QFuture<T> future = this->future();
6 c9 `. t) ~5 t& Y; T QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);' u0 o! g- _1 X( c' g* `& @) g% U
return future;
% B' I6 W5 m! r }. ?. F+ G q# K8 n/ e& e" s
3 f/ e9 N, r7 _8 B& v1 Y void run() {}1 x9 \2 J: F n9 G& e/ n9 b
virtual void runFunctor() = 0;
2 o6 _1 A$ T2 q9 |};- v' u+ y, B1 F# G9 m
: F, {* V) f/ A" l3 ]' a) Ktemplate <typename T>1 v% `6 `% G8 Y# p- Z
class RunFunctionTask : public RunFunctionTaskBase<T>$ N7 b+ C( i% X9 I, T; h; k# J; w5 Z
{" |/ J2 p" @7 s! B8 W4 f
public:+ p/ D. c3 J6 _% { W
void run()6 P* j T% w3 u1 B: D
{
) G% G* n& Y' [, ^ }3 O% t if (this->isCanceled()) {. X7 F8 a' b2 K' \
this->reportFinished();
( t& j; g- m" A4 }/ z return;& T3 N+ F0 w& w: u
}* a- ?0 u1 N8 o5 `; Y2 p
this->runFunctor();
2 b# L% W' V% T5 A; c& U this->reportResult(result);
0 r2 n1 `6 E/ A8 B. b4 ^8 \: [ this->reportFinished();
, e& h' R0 l# U0 n7 s( B }
o& C3 r& `5 Y* A5 J T result;9 `% p; `0 V0 b+ j# h0 }. H7 ]3 O
};
7 X- E# B: ]; J4 _
4 q1 A" h# R3 ptemplate <> I1 t: d: Q) a* F+ C/ O
class RunFunctionTask<void> : public RunFunctionTaskBase<void>2 e- ]9 M0 @* T3 }
{
; R6 q3 F* T* ?' @* G: cpublic:4 t0 F* L. b- W ^) O0 `0 h
void run()
- V U5 a$ P. W. X# w8 X6 U5 P {, w) j: _; V) j( w
if (this->isCanceled()) {. d2 U( J: ]& d/ f. l9 u8 x
this->reportFinished();
# _, L, k+ y. P, o return;
0 T% ~+ [ `& m ~& e }6 `% @$ q# G G7 T. \9 J; ^6 ?+ D
this->runFunctor();" u) M7 C6 M1 y
this->reportFinished();; a; A. L% D P/ j+ w
}- j$ k+ J8 {& b4 ?$ N f8 l& r
};
' J1 {+ ?4 C- S# m7 w; ~$ e" Q. X6 n: |( R4 ?( C% b
} //namespace QtConcurrent
* ?! k& [$ s x1 Z2 j r* C4 |- J. z! Q* w V6 [6 e6 t# t
#endif //qdoc
3 J4 k- ]) k2 t& h- F f6 U
$ F6 w$ b F* \% v6 ?- Z5 tQT_END_NAMESPACE: k7 e6 ^* v7 Q. N$ M: _ z- E% P
QT_END_HEADER
# ]5 E, F3 V. e0 R$ r7 i" U! `5 V$ e3 ~+ {% ^3 a
#endif // QT_NO_CONCURRENT! l/ }6 M) n# S1 w; z! B+ D
6 u a3 `+ v; T
#endif1 P1 W0 E2 d! B! z D
1 }1 ]8 h! w ?/ G: O0 z/ T. W: P3 }
|
|