|
|
我对syslink进行交叉编译到arm,但是出现如下错误:6 x% i% N' u" m, \, n+ T. X
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% Q; f) ^- t! p
# {& S1 r& V2 N% f" ~8 ?
这个头文件内容如下:; Y8 m8 t. x& ^: w8 o
#ifndef QTCONCURRENT_RUNBASE_H7 G# t0 S4 J3 @3 E1 w) B
#define QTCONCURRENT_RUNBASE_H
9 }, c7 ^' \" j& } Q" Z0 ]' A. r: B, r% I" z" ?
#include <QtCore/qglobal.h>
5 L% G# c3 A* I% X- p1 t/ {4 l' b# _1 B3 D
#ifndef QT_NO_CONCURRENT
, @& M2 `4 {5 O7 x5 g U( t! c4 g1 }& w7 U, N; P3 V' w
#include <QtCore/qfuture.h>; x7 I. I: f) L$ o. f3 v1 [% \
#include <QtCore/qrunnable.h>
' f R8 b7 d% X#include <QtCore/qthreadpool.h>
, m$ _9 [) H+ w# `1 e: G
6 L7 }+ W" A2 l; i( PQT_BEGIN_HEADER
9 G2 |3 i6 ?4 k0 _# hQT_BEGIN_NAMESPACE
3 D8 u$ _+ _ ]9 v" h) f5 \. O
6 D2 Z* @( N7 X( S8 zQT_MODULE(Core)
8 p9 w* o( m5 p! H) C8 b# I
s6 m" a$ S- A; Q$ ^0 q) k6 [ t#ifndef qdoc% [, b q6 L! G% d- d2 M
! m% i* e- E, v. V' M" F3 F' S
namespace QtConcurrent {3 p! M7 \& ]1 H4 g
- e: g( K8 r0 v$ Ktemplate <typename T> [, W4 k8 N5 N t, e. i0 V
struct SelectSpecialization
" t" p4 |! I/ o9 o! g) \9 j8 `+ z{9 T4 Z: g R+ E4 w
template <class Normal, class Void>
9 Y, k& j1 b9 _1 ]9 g2 B struct Type { typedef Normal type; };5 o0 Z" v6 U( x; `/ C( z1 s
};
. P% Q. ?1 g+ z6 |% ?+ Z, g5 H; t: |' |2 |. e
template <>
6 ~: h$ |* M( K6 \struct SelectSpecialization<void>
1 v/ p8 U2 X; S. S+ Q{6 b5 T4 t/ _4 ~1 x
template <class Normal, class Void>
1 j2 R. k& ]. t2 p struct Type { typedef Void type; };
& K2 k/ a6 O; Y- \};
! k5 y* [6 m3 @9 J; K2 G
+ s, A" d0 Q9 X5 ~: a# B+ Etemplate <typename T>
1 W/ N0 i+ r! g4 v* o H) X6 r* \3 }class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable5 L8 W* y" m5 `" y, R' I5 @
{
, _4 H2 o# P+ l' T! [# u4 Spublic:' a- j0 t% P. c0 m7 B8 t$ J
QFuture<T> start()
! v1 F8 }' q. D& K, Q {' ~4 z" v2 p( U. |- o4 ]5 l, L
this->setRunnable(this);
$ j$ s; a6 @0 e3 n" l3 D this->reportStarted();+ o8 U( T' A8 f1 x/ A
QFuture<T> future = this->future();( Q. u3 j4 R, D8 P6 I, r" u
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
# h# u( }4 C* i/ A& i4 x return future;
) M. J" m z, W! y' I! m! v }1 V7 `, w' M2 c/ s$ A) \
: L; U# U! a. V* x1 H5 o, v& O+ K void run() {}$ [% Q r8 b6 H% C; w) i3 N
virtual void runFunctor() = 0;
* A+ J: ]' D* N" ?};1 t/ l8 l0 y( e) Q' `
/ q: S9 {$ z7 }! Stemplate <typename T>% ~8 g" B* F, @& }" V
class RunFunctionTask : public RunFunctionTaskBase<T>
4 [& [8 @1 R) i; x{
. ?7 V9 X8 M4 F& k" N+ T& _public:/ }1 W, Q( Q. D) G5 I8 N
void run()+ q5 y$ M# O1 A0 r7 o. z# q
{
6 l3 A1 ~: `+ C* v4 s if (this->isCanceled()) {: v: X5 {+ ~, d3 V4 y! N9 U5 `
this->reportFinished();
( c" v# `5 L# J4 e: f8 k o return;3 P+ B: Y% N, X+ M
}
8 e9 K3 _* T2 A/ p9 a* S6 K this->runFunctor();
1 E. b# ^6 s1 |! z; | this->reportResult(result);
" J: K2 U2 H2 } this->reportFinished();0 ]/ g: `# ?2 d
}& B* H; ?+ ]- E, ?4 g4 G
T result;
( q- d% l0 n: w9 f};7 H% S! Y- {2 c' i( a3 L
. d: h5 d6 E5 r) O# }0 u# X8 q
template <>8 U5 t5 Q* x- y v! C5 h$ s
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
, q# S. ]: b1 y; a2 m{: W3 M9 r2 e+ l! X$ H: o% W
public:
$ p7 F" [/ r; O* Q void run()
) Z. c2 X% w' {/ Y% v {- U# g5 E8 D5 v i
if (this->isCanceled()) {3 ^7 R) T/ o5 |! p( j9 S \
this->reportFinished();
& j: [% l9 z( A6 z, Z return;3 ]' r8 d7 M7 ?
}! M$ _5 |: f+ n g+ c) |3 S
this->runFunctor();+ a3 W6 s: L2 @1 Y; H$ u
this->reportFinished();9 B& A6 k" _( i
}
- v! r, c5 y! D H0 E5 y! H' f5 b; A& n};
' W/ W5 u% A9 c3 t* o; B9 I. n! u/ Z) B- e M2 z5 B
} //namespace QtConcurrent# Z2 R4 a$ U+ s5 Z" `4 U$ E
. `* l' O. P/ J#endif //qdoc8 d! w; h/ L% C( F- ^7 T! u. b, B
/ J( [8 [; V( F: B. Y# Q
QT_END_NAMESPACE
' g; |( D' r, F& y; R8 LQT_END_HEADER
1 i& N/ e9 D d0 j- x2 E* U
1 L5 Z# `0 s( z( G#endif // QT_NO_CONCURRENT" j9 o* N4 b+ o3 F7 c/ C. b3 [- D
; k N0 M0 i/ q( P#endif8 b2 t' [7 x+ }! j) G& y0 g
; j& U9 X! V, G1 m3 s# e" C/ ? |
|