|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! L0 }% b! t y0 I; e
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'! U6 J: W9 Y- V( n* {8 I
2 U4 \! }3 J. q U4 X, j0 K
这个头文件内容如下:+ i% P" s2 \& f0 |; h1 r- v
#ifndef QTCONCURRENT_RUNBASE_H
* s: j0 O2 _# o$ q3 e- M#define QTCONCURRENT_RUNBASE_H
& ]( K& D) ~) b( C; V$ q9 L: `* g
#include <QtCore/qglobal.h>1 m, P7 {. w! \0 C+ L% ?3 F
: X2 Q" M, {- B3 W: Q0 `
#ifndef QT_NO_CONCURRENT* A" g6 M( F/ r$ w/ J4 D( U
* W5 J. U* z, M0 E6 ?#include <QtCore/qfuture.h>
% ?8 g& k3 j" s8 z ]8 D# y#include <QtCore/qrunnable.h>2 D: R0 a F: W" i2 m
#include <QtCore/qthreadpool.h>
; w! `& ^, u8 d7 p \1 U
: S# z4 V6 F8 \$ {+ W$ _3 QQT_BEGIN_HEADER( P% r" O5 [* x- q
QT_BEGIN_NAMESPACE5 a8 y9 H' C+ ~) T: O
e- ~: k+ v5 H- A4 V; v- C0 lQT_MODULE(Core)8 p1 r1 N% I: M1 t- b: R
" q0 i; k' U7 M1 \ d#ifndef qdoc
3 b' g' w4 J7 Z3 i3 K1 o* |$ C2 w9 I4 y" D# e( f
namespace QtConcurrent {
$ F/ |8 {2 x. _5 j7 z5 D
6 s! p$ {: I. k3 @template <typename T>
. h8 v- [0 ^. @struct SelectSpecialization
* I5 V2 w, F6 Q4 I8 U{" b% S& l1 b- X4 X, c1 S: y
template <class Normal, class Void>
+ ?; z( T: m, s' ~ struct Type { typedef Normal type; }; t* X ~6 x, @4 O9 p
};( K* l( H5 N. c. T/ P$ n5 Y8 g
3 a5 \: \& L1 f) S6 M7 f, qtemplate <>1 z8 j: }; b! k# p; K5 j2 K
struct SelectSpecialization<void>6 I5 d$ X: {+ z+ d; {" q
{2 Q- A9 o+ q. I" g
template <class Normal, class Void>
2 d- l9 w1 Y' _' R struct Type { typedef Void type; };. F& ?1 }: a. z4 n. q
};
3 h* @2 [ | O! c/ u
& Q% j7 P9 |: j5 Itemplate <typename T>. @; A7 I; |, P
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
7 T7 R- ^) ?2 n0 d: X, V# _" x{& T) F5 ^8 m* @: J% q- F
public: |) p5 i, F+ E
QFuture<T> start()+ {. V) v' ^. F
{
4 `" N S8 _$ [% `- B' N* c+ l0 ^8 U this->setRunnable(this);2 l. T& W% w6 V Z! }9 [
this->reportStarted();' y7 E+ _/ X& G) m3 K
QFuture<T> future = this->future();) S1 m0 m& f; p: U6 b4 [5 t
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
' M! p3 V5 u1 E e7 B) o% ] return future;
% i: Z2 Q, j) s }
# I( x' J2 d. F3 z# I3 L# J8 n# U
& E. F; J) B7 t8 V; h7 E void run() {}
; e" S# X# i7 E virtual void runFunctor() = 0;2 A6 s) Z5 d5 x
};
: `* Y2 ?/ Y1 q- Y, Y2 p/ b/ |
# u# ]6 q; `% j0 V( M- ntemplate <typename T>0 f. B9 O, j/ r% L
class RunFunctionTask : public RunFunctionTaskBase<T>
- l$ Q- R+ C) r _) F' y# I E{- j8 ^7 p' y$ w g* L- E
public:# l$ t5 i( `5 r3 _# B. t
void run()
" l/ f5 E! n2 k4 ] {
8 N4 ]% h! d6 [" q if (this->isCanceled()) {
k* o( b$ `4 H1 r this->reportFinished();* _$ [0 [5 u/ b
return;8 o$ f" o" [% Y+ Y' D5 y; k, d
}
* q5 b8 F8 ]3 v8 G this->runFunctor();
2 o) |* @# o5 o% a! Y& | this->reportResult(result);3 O4 y& X4 i4 y8 }) k
this->reportFinished();
1 A& u/ @" y7 A7 J# A }
# z+ p/ U+ @8 z$ c) J T result;
& g1 z) G/ b% @- V7 C4 E};
& G$ {: ^! J. T( M- o3 h9 M/ o' N
u) H! L5 H' e1 Dtemplate <>+ ^5 J. g1 } `! T0 r; P. T" }
class RunFunctionTask<void> : public RunFunctionTaskBase<void>% G4 Q; t( W# e- s" X' R
{: T2 K' Z7 V4 u/ l3 w6 d
public:
) b6 D% L( h! w2 X$ b1 t3 Q; p void run()- k# `+ v) g6 r/ a/ x: X/ t
{
4 o) `% O. [3 g9 {2 I6 q if (this->isCanceled()) {: W: `, `( w" q* ?" E+ N+ A9 O/ |- [
this->reportFinished();- j# h9 o: H6 G! T' [
return;' p+ e0 D% w3 d
}
1 {% ~$ _ f8 w- {7 h; W this->runFunctor();# k$ z- e2 p, Z9 [
this->reportFinished();3 j; v3 _& \' M, ?- c+ ~7 W
}" j: A" a1 }' G4 j0 r
};5 \ H! o' c7 c0 _6 y
6 G/ M( t& I! s" }# ?3 W} //namespace QtConcurrent
4 j8 w$ ? s" s+ V7 P6 N! X2 k
' ], B1 j* I* `#endif //qdoc/ `6 I* E$ x5 A# Q
, P! K7 v$ g* J5 j: C- D6 P/ [
QT_END_NAMESPACE
! ~# H* n$ r$ B0 P0 J+ H: @QT_END_HEADER
1 g: u1 b" S+ [, m# X- ^+ q5 I& N7 |8 w7 ?
#endif // QT_NO_CONCURRENT
8 b) E O7 X1 w6 z6 Z3 r. t+ r$ B' T4 ]. m; t
#endif7 I- j; h3 `! O5 y+ l* J$ I
+ f0 Z# f7 r( X6 b
|
|