|
|
我对syslink进行交叉编译到arm,但是出现如下错误:1 z3 p/ e8 P! m" h( u+ u3 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'
$ y* M3 g3 ]0 {: o/ h- c6 A- f; z6 Q8 L; o: y5 S
这个头文件内容如下:% O. l# L. M3 }' s1 ?
#ifndef QTCONCURRENT_RUNBASE_H( f# m) E2 n. X& l# X. A5 {
#define QTCONCURRENT_RUNBASE_H
6 m1 T# `- i5 p
, L2 c v' C* L) e$ r#include <QtCore/qglobal.h># R7 C6 _' t0 k7 z d( F8 c
f# g2 c8 J u. W
#ifndef QT_NO_CONCURRENT& H* Y8 M( X3 G S
* u: E, |7 |% d- _' R
#include <QtCore/qfuture.h>3 i) W8 E! G0 b: @& q1 h# Q
#include <QtCore/qrunnable.h>
. Q d2 w7 T/ f% e4 J+ c#include <QtCore/qthreadpool.h>
* ~3 W* {8 `) P, s6 e" z' o( q8 X
; C- Y7 t) Y: `QT_BEGIN_HEADER
3 l) f/ a9 j1 w* n6 jQT_BEGIN_NAMESPACE- _8 V( E4 ~, V5 q9 `. V0 d" h u
2 n J( z+ x% K) _) i a+ a
QT_MODULE(Core), R8 t5 t4 Y$ m; Z
8 d" M7 L, c: n. a# E$ q$ |
#ifndef qdoc% |* Y0 _+ B& K; a, f
6 b8 d" T, E' ]9 R% Znamespace QtConcurrent {( |6 P* s6 f% O h0 K
6 e- m8 u# @: g6 I) stemplate <typename T>& h8 V& g7 w/ o1 H# @: j
struct SelectSpecialization
, L8 o8 O( A' |' ?2 f% b{
. ?& l( a4 X. B5 { template <class Normal, class Void>
5 V5 c6 }! \' W9 b struct Type { typedef Normal type; };2 C7 b2 {9 n" y) w7 ]; o7 b, P
};0 w) V( z G% B
! j0 N" ?) h4 D+ `
template <>
4 ?; z8 D' Y2 I, L& x1 @. Istruct SelectSpecialization<void>
! l, `8 ?( {& ~6 n6 I# {/ z6 P4 F' f{3 k" N1 H1 b7 m& i! k7 ^
template <class Normal, class Void>6 R: L* C8 t' W$ X9 _ _7 i
struct Type { typedef Void type; };& P: V2 `) n, K- s1 k
};
' I8 b7 x+ f- d9 F! q- u
) d8 Y. b* ]8 p1 s8 Ntemplate <typename T>
3 v+ m6 j4 W% G( J2 ~9 ~class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ w$ b6 s1 ^9 E. _+ E' Y1 ^
{
: J0 ^- ?8 M/ n8 B8 ypublic:/ Y2 z4 y6 ~2 \$ D" W
QFuture<T> start()2 }1 b2 [! v7 i1 p! V7 L( v
{6 ?( @2 f5 T8 z
this->setRunnable(this);
# M7 t$ s/ c3 b7 Q9 K this->reportStarted();: C, n% M7 z; o
QFuture<T> future = this->future();
^4 B+ w5 } w4 }! {7 S QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
' o; Y8 J2 D* _- V) _9 ` return future;
. B! r3 ^- X9 v$ n: t* Y( @9 r }
& f; }0 i0 j8 B% C( m- ~- o s5 a) |* D
void run() {}
9 G( \' ]+ y g o virtual void runFunctor() = 0;3 |6 T! g$ g6 T. B( z
};
: X$ q- R& k9 z# Z9 t6 T( O" v+ A, Z' Y" y% k5 d0 `; }& U' L
template <typename T>+ i6 o3 E6 l% M% A3 h! E
class RunFunctionTask : public RunFunctionTaskBase<T>
/ }: Z) l6 _. }* U{: f* z( {1 ]6 B2 y0 I- |0 q2 W. V
public:
; w7 y7 Z) U( |& s" w, r. B void run()
! Q# H( }4 a# M' i/ \) w {
8 `" ~& @$ F# m4 x- c2 n if (this->isCanceled()) {
; W4 Y3 Z' ]' m1 j/ q6 _ this->reportFinished();
( k/ w) Q; W. P/ ?9 a return;& s9 ^& ]; v! v T/ ^$ l& D
}
5 J3 J' W. X" P: h this->runFunctor();
# \6 y, m+ p* G! P0 i7 d this->reportResult(result);( h: {$ W" l* N! A
this->reportFinished();# i+ E; X$ _- q1 E7 x9 |
}
m6 N5 {7 R3 V; F. ^ T result;
# a8 w* ]9 S0 t+ X; E; R9 T};
/ p/ T: W, d3 N) Z% Y; F. v6 f9 y! z3 M6 T% z4 G3 I$ i( h
template <>
8 g5 h; l) I ?1 eclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
" C1 Q. K- p; j+ {{: `8 I- D0 E5 W* B
public:
8 I5 U& y5 p J, R( v void run()$ n4 a2 M7 q0 R0 a# m6 R& h6 W
{
# F( b; ~" O3 ?8 J l if (this->isCanceled()) {9 t+ k2 d+ i( N
this->reportFinished();
& P# w. A0 ^* c9 k8 g* }# A return;% p0 |- s6 q. A9 H, u. G) G% `6 r
}/ ^2 ]+ n# J+ [5 G; E6 s- [3 j
this->runFunctor();2 a" U4 |. m" ~+ k z2 g; A8 b( ^8 k
this->reportFinished();
) N4 D v7 `; g1 ^/ Q2 _: q }
" x0 @1 t5 M* ?7 u! m( f: W};
1 l7 `2 `$ r0 L) S3 F6 q$ Y2 K. Y3 i# {( N1 I
} //namespace QtConcurrent2 Y/ l8 K1 ^4 {
% A- f: m0 I- Q, H/ ^" z#endif //qdoc( L' i% g( f6 H+ j2 O4 y7 R+ ~+ k
/ F( S/ Z* F; ~9 s V. pQT_END_NAMESPACE
) Z% ^! _) m3 }& Q7 kQT_END_HEADER
( i5 B% a( {3 }1 g$ p e4 K' x/ G9 d
#endif // QT_NO_CONCURRENT3 M E: q$ b, ?4 z. f8 N! B0 J
+ D5 K2 G0 G$ A. O/ }( a
#endif- O E+ @4 [; _7 E7 S
1 \/ g. E$ @0 D) [& c
|
|