|
|
我对syslink进行交叉编译到arm,但是出现如下错误:# X: X5 O7 _ Y+ ^7 K% ~1 T
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'& P( X3 M5 E( H }6 T
; Z! g7 Y' Z! V! c( x. p! }
这个头文件内容如下:/ ~! f. y/ ^7 H* Y) Q
#ifndef QTCONCURRENT_RUNBASE_H" M& j, j5 \) g0 K/ v/ S, n
#define QTCONCURRENT_RUNBASE_H
* O- Y" O4 V5 _3 i, h7 j i9 O& b7 Q H) q+ q8 I8 h9 w/ W( n
#include <QtCore/qglobal.h>. ^" i8 d3 r1 i: b2 Y
1 `8 F( G" X& h, m! Y; A7 i) S
#ifndef QT_NO_CONCURRENT7 o4 ?0 ^' N* o+ J1 C2 s3 m
$ H u3 t8 k/ w
#include <QtCore/qfuture.h>
( w3 z" _4 T* X#include <QtCore/qrunnable.h>0 w% w% O$ K7 L' E# Z& I1 x& u
#include <QtCore/qthreadpool.h>' P: v5 c! B( O; t& L2 O4 ?; \" {3 `$ t
/ x- y5 o z' J- J/ j( A. W
QT_BEGIN_HEADER5 m3 V1 L5 x4 F" U0 D6 x$ W
QT_BEGIN_NAMESPACE& b% A3 C5 I3 M, L$ H
- E* j, k& f# D) O8 dQT_MODULE(Core)) J1 _! b& p Z( ? i+ y) n- e9 a+ y
2 t: _9 J* a7 U2 U& ` J5 g
#ifndef qdoc) N' `' c5 H1 f0 C$ B
; z) W. `# g/ e: m+ `0 u! S1 gnamespace QtConcurrent {7 K' ^; C, c( E: X$ L0 K% }
+ N/ L5 _; h: J' {: }& n5 a! Ntemplate <typename T>
3 C' D3 C9 A' [. r' N j$ O. qstruct SelectSpecialization
x. w1 Y. y+ q{3 y4 G$ `9 N+ z
template <class Normal, class Void>
0 y- S: E2 G' e6 l$ c$ {' I struct Type { typedef Normal type; };; f0 k3 b/ F! j$ i6 w
};
5 \ m8 ]$ z% r
& J, x& ^* K& {. P' |! vtemplate <>
# T( b, v( W0 [$ hstruct SelectSpecialization<void>0 ^# p3 {6 P5 Y& I
{
" b6 L1 I5 L) j3 J! z# O4 E template <class Normal, class Void># ?6 h7 \! W3 Z# Q! i$ v$ ^
struct Type { typedef Void type; };
! }, I: K! J( T4 w3 T% f};# B' y! n& }2 g& |6 \& ?2 m* W2 d1 W: a- p
% A/ L5 R& K" H7 b; Htemplate <typename T>
7 y0 W* f/ G# ?* n* U$ |; C0 Dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- |2 u5 l! W; Z$ E7 B
{& y# a$ `. } L; N( Z9 r
public:
+ `9 E6 x) Z5 ]8 M. a8 _ QFuture<T> start()! l+ w, i$ w5 F* ?7 w7 P! b0 h, \
{
) X" u# t ]2 f1 k this->setRunnable(this);4 I3 A4 Y" _ B. ?$ \+ _6 h3 ?: ~
this->reportStarted();
4 a4 {7 z9 E. q# v! R' N QFuture<T> future = this->future();
& r. z. s: A$ Q7 V QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. x, [/ c; X B- D M' g) ?
return future;( k3 t$ O6 Q& ~) w
}
8 M5 m; w9 V0 b7 j: M! R( c
' N5 z" o- A; U9 y; R; X/ H void run() {}
4 i& B! X4 H! M/ B0 e) R virtual void runFunctor() = 0;
# I* y$ b* l6 x, O) j/ a};
+ t, g" F8 S B' ]9 P4 G" M
5 W$ B, u8 y" I" w8 g- g/ W% {template <typename T>7 \2 x* F# {/ R4 `; I9 e( ~
class RunFunctionTask : public RunFunctionTaskBase<T>
7 p/ E/ Z P1 J$ p/ d. a{
! ^. l4 U" a8 Y4 H" X% `1 Xpublic:
1 d& h8 A- g* @" G/ W: _9 _9 ^ void run()' P2 s3 E9 }& _3 ]( b1 U6 e
{$ k/ Z+ l9 I% }* k) A
if (this->isCanceled()) {/ O( h7 O5 [# ]
this->reportFinished();; {2 g1 p1 u8 t H$ X
return;7 M# o; G$ G6 C3 f# e0 k
}
* D# v. v" |" O8 Z' r; H this->runFunctor();
" n/ |8 ?0 e% s8 Q) c& U& Y4 { this->reportResult(result);
y. g& t+ `8 a {( Z+ P this->reportFinished();* E& U4 Z$ ^6 p5 m0 n9 l, g
}! E( O, A1 Q* X* r! ]
T result;0 n" d; P% ?) j2 |$ W |" K
};( F7 a* A' }& A9 ~6 b8 |
: r. p3 T8 H% ~0 u
template <>+ T& W1 Q0 |9 Z
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
3 x/ i- _% N+ r& |{1 T) \9 H! G% I# X# Q3 q
public: w! X# b( O0 e: {- ]
void run()4 r, ?' k$ t; ^" \$ ^
{, G, H: @$ h/ ]9 |
if (this->isCanceled()) {
! `7 [8 l% p2 S, k. `& W! B this->reportFinished();
- g# z* t0 S* |! }( E" p. s- D return;
2 g+ U" L8 L7 R$ F) G5 o }2 H4 B0 z; H, `3 X- ?% j
this->runFunctor();
$ ~' y' w: Z6 X2 D& e; S this->reportFinished();6 j* @3 C& s- x! u
}
; k2 t0 Z+ v: f* g};$ _8 U/ g' y$ G, i9 i6 {
, |: E5 x$ B% f2 v# R" o} //namespace QtConcurrent& z3 I( E- p' w- a3 p+ V6 O' v
, G8 I. v4 l% ^1 [2 |( x. y
#endif //qdoc( L0 ]$ }7 ]* T( I+ n# V! y
& P" Q* O& U, }5 Y: _/ uQT_END_NAMESPACE* w/ n( L6 N6 t' Y
QT_END_HEADER% |" U {1 l3 a7 H2 ]; M( m& C
& u. c$ \! \6 U4 l. Q5 s
#endif // QT_NO_CONCURRENT( k% n. Y3 ~8 R. {6 e7 } @1 f+ ?
; J& u* ^" c- ]* i( R
#endif
) a2 v% v1 C' o/ G; }1 t* r8 O
|
|