|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ C- _/ R2 B/ P2 ^
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
+ L) b! i9 q s3 R+ `' S
. O6 r* I' I( d这个头文件内容如下:2 I7 e0 l1 q, j) t, G& w' k
#ifndef QTCONCURRENT_RUNBASE_H
8 Q- J& g& _5 V) }8 x) [* o#define QTCONCURRENT_RUNBASE_H
A# \" x( B( i& b/ u; r8 N* I+ i, C: q
#include <QtCore/qglobal.h>! N* T1 ^: t& _8 Q9 ]& `, v
# v" ~. m6 P( [7 U" H3 q* ?
#ifndef QT_NO_CONCURRENT
U4 o$ ?. x5 L+ V7 ?/ J5 y- L- ?3 D
#include <QtCore/qfuture.h>
+ t2 i; E6 U0 ^* @- n% F2 O- Q#include <QtCore/qrunnable.h>
( D5 K) s; ^' ?1 p. z5 V#include <QtCore/qthreadpool.h>( n+ B9 K z4 a6 c2 J' G
" z& J& h! ?* f6 k2 M& DQT_BEGIN_HEADER
, B4 n$ u' o" M4 \ sQT_BEGIN_NAMESPACE4 Y% m9 D1 U4 C+ s! J
% |* r3 p% r2 n( L3 z6 K) VQT_MODULE(Core)
, n. K1 @ {" n/ }8 t+ i5 D* \* a5 M* R0 w& D( }
#ifndef qdoc ?$ D9 i" }. [8 o$ E& a! ]7 O
* W: V' V9 D& Y' ~" X/ s$ L
namespace QtConcurrent {
$ w5 x* @5 I! h: W0 W) ~( w1 |
( f- a+ N/ q N! s9 L) ~# u( l. ]template <typename T>
0 p+ L4 n6 N) e+ W3 C1 }& nstruct SelectSpecialization, v/ l; P: k. S, N; M+ M, E
{
* X! e' D8 @5 H' @! m template <class Normal, class Void>5 \4 e- ^8 l4 l$ @& _; f2 u. P
struct Type { typedef Normal type; };
3 p% j7 y$ R# N# X L};
& I1 C: J( R* w( Q0 q& K) E2 h1 [4 ~1 l8 F8 J
template <>9 b( g+ g. a+ b& C6 y
struct SelectSpecialization<void>% U( ]' M: h" B4 k
{8 Y0 s& k6 E4 z6 q" X4 s
template <class Normal, class Void>( t" T" w) g5 h% @2 I
struct Type { typedef Void type; };
) m* |8 h, z9 ^3 ~( [4 {};
7 X6 @7 d: T* ?8 x
* Y# B$ [9 m1 o$ atemplate <typename T>
8 z1 L K3 n% J9 U' Dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
" J9 G2 P% ^/ J3 V5 z{6 ?4 x; Q8 n1 n9 T4 ]
public:
+ A e; }6 T; Z* p7 O! X5 ] QFuture<T> start()
+ k2 ]1 H( c2 }! n8 `8 f {! S7 G" e$ ] m- | c. v
this->setRunnable(this);
; R F" ^) [4 |# ] this->reportStarted();
. P s- }: e. p' q$ a& ] QFuture<T> future = this->future();
- [" G2 w; d! o QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);% O2 |7 T7 ~1 U) I L% M0 k* _
return future;7 P- j5 y0 a/ x5 |+ J+ [/ {
}: X# B( H: v( A$ @, m( N
1 ?. P% Q: T" ` void run() {}6 j6 Q& N/ S8 E6 l9 j
virtual void runFunctor() = 0;+ b0 h5 l% w8 K' ?9 Y
};
# `0 G0 h3 O+ H) y$ Y9 f; Q/ S+ s5 @5 o; r/ u+ s- ]" k% V" G* H3 E; P+ L
template <typename T>( `" e$ \2 s" B0 E4 ]: K( }! k
class RunFunctionTask : public RunFunctionTaskBase<T>$ I2 u) m/ C1 W, P1 N
{
1 b) Z5 _9 Q. x* l) D B, p! u" b# A4 `public:+ s+ \" C5 U- C5 B- s1 ?
void run() E4 s0 U1 l8 N
{
8 y1 w5 W. h1 q& a# |. _ if (this->isCanceled()) {& r$ ], ?* u/ R2 G9 C
this->reportFinished();
2 f/ A. T! ^3 E/ m( b return;
2 Z+ D5 b9 C% g" x1 y5 I) e$ v }
. Q/ N7 u( J+ x$ {$ [ this->runFunctor();2 B7 J F1 A7 Q
this->reportResult(result);
2 w4 A9 Z! l$ y% L this->reportFinished();9 ]4 P$ \) A- I. l& z& q6 d" q* p
}
/ r$ ]. k$ ?7 j! D T result;! N( u& p$ [1 U1 q$ d+ G% o
};
8 ~. Z9 R9 W# j' R, c* |. G8 _+ _
* ^6 [4 L- P' v9 b9 A8 U; ctemplate <>. c" l$ r; z, ?3 v
class RunFunctionTask<void> : public RunFunctionTaskBase<void>. Y: F( G. p5 p7 b1 {% Y
{5 [3 {, s) K7 E2 L) z( A4 [
public:
; T1 F! B) L" l c- z6 t* c' ` void run(); J2 ^+ ?/ N/ O" p, f
{
7 o! {9 [- |& {2 e# E" M4 G1 o if (this->isCanceled()) {5 `" p, _) X& I. Z% ^3 t, f
this->reportFinished();
& @3 u0 t6 a! a( `/ a return;
6 b0 B' ~/ |2 f$ t1 J- S }9 F) {: O8 b3 h* z4 J/ B' n
this->runFunctor();
* R/ k( k0 R( [ this->reportFinished();" c$ z! J( U3 f
}$ {0 W8 y9 W' f1 @# e* o8 I
};
) Z- w4 T& V w5 G' o3 v! t; N6 E
3 Y8 j* o6 i4 g} //namespace QtConcurrent
2 ~ @: j4 A# G5 v0 K7 k! {9 ^2 n3 y) O! @0 H5 q
#endif //qdoc
# D: e% a( m9 W6 Z( [. q* ^9 r: C8 T& |: B* |
QT_END_NAMESPACE( P7 z7 a/ k. u* G
QT_END_HEADER2 Q* z+ k' E1 p+ ~: s# N
; R" O' O- x9 Y) l#endif // QT_NO_CONCURRENT1 U! N, v+ W- E
: _$ g3 \+ W: P( }9 V#endif
) m2 y. n/ ?7 H% w/ X5 P, o! } T# u6 r
|
|