|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
8 _( O" N- C2 O' C/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
) j u6 y" _* N2 q# u! }* Q
) q; A- B1 m. U这个头文件内容如下:
! G0 f/ v0 K' w0 ]# N7 U1 f#ifndef QTCONCURRENT_RUNBASE_H' }" i [$ }! `3 [
#define QTCONCURRENT_RUNBASE_H* a- d3 a* L; Z* |: l
# ? O) Y" ~- u$ o. e$ t; Z
#include <QtCore/qglobal.h>
' n; @* x0 u+ o2 o0 B
& o3 @( T+ }5 ^3 }* O#ifndef QT_NO_CONCURRENT
' B/ }9 P! ]8 K5 \4 W1 m2 b7 I) i5 n* c F, \2 f/ A
#include <QtCore/qfuture.h># J2 U* t* k6 n0 n9 `8 P+ Y
#include <QtCore/qrunnable.h>
. @8 ? g/ \6 r/ ?#include <QtCore/qthreadpool.h>7 V. _1 x! I0 d# L' R4 L
1 }5 f0 I$ C9 _' _, |% f# LQT_BEGIN_HEADER
. u; ^' ^1 w# {0 y0 o- y( N5 iQT_BEGIN_NAMESPACE5 {4 g0 j/ n _# F9 ~6 n! K
. W$ m& Q! A9 k* ^
QT_MODULE(Core)
. d/ J. H6 h' X+ m& P3 |/ e" J4 T7 S! }" k- v( }
#ifndef qdoc
' q6 P U0 @* Q/ U* d( @* b% _' c: J: B* o9 e. P5 \" v* z
namespace QtConcurrent {0 M0 b- n- U) O8 X
# \) Q3 J" l% F, |7 g+ D6 U
template <typename T>9 { Q7 W4 }: C3 P1 j c
struct SelectSpecialization3 M+ `% T2 _7 W
{
3 T$ |, j8 V8 v template <class Normal, class Void>' Y7 Q, ?% U6 I, t
struct Type { typedef Normal type; };
4 R; Z+ R, P0 S/ e k$ \( [" o};1 M l6 e# N2 N3 ?' h
( L5 T! \! A+ a" N* b! ?8 D" f
template <>; {4 G- P1 o9 L, L: o% }( _) f1 T) y
struct SelectSpecialization<void>
- n" M: y$ f( D1 c/ G' x7 f{
6 i- L" b: H5 k- B template <class Normal, class Void>) G0 [1 O( C3 ^
struct Type { typedef Void type; };
' u, |" C* f3 }* Z) ?. `};
( O7 o) D! T9 u d& Z/ p# p2 | i* S4 f0 k. U( F' T, s
template <typename T>8 R) G' |4 m( Y# G- W& h! b
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 T6 u' {% V+ i) @& h5 i* t: `
{5 M% `7 R# H! b! N6 G4 i4 N' U
public:
8 o: z& C8 E5 Z4 W, b9 E QFuture<T> start()2 I3 I& a) S: l
{& x# c/ j; ]. X5 M) A. @. a7 e
this->setRunnable(this);/ z. c8 ~" ~) [2 Z2 |
this->reportStarted();
, ?, J5 s8 n$ V4 O. a% ? QFuture<T> future = this->future();
5 B% ^" ]: S, q- c: x/ \ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( j- Y7 h. r3 w7 h) y
return future;! N- v# k9 e1 M/ F4 E
}
5 t2 I/ a; |* y, d9 `' Y |5 d: N, n2 R7 ~2 p9 f
void run() {}- P: z, S" Z1 O) f ]
virtual void runFunctor() = 0;3 _5 z# l4 ?% m8 K0 }' {
};
1 Z: X. P0 E. _9 v$ `3 ^* t9 r$ u
1 `# h- s* D: u2 y5 w! G% Htemplate <typename T>& i4 W7 s1 F" S9 g
class RunFunctionTask : public RunFunctionTaskBase<T>: v8 Z% `0 K5 i$ R
{
& n G* u/ E+ X0 s* Y; ?/ {public:6 q/ @' m5 i, A" @$ z% \# p
void run()% E7 N- d7 Y- X. E1 M, g7 R) Z# U& t' G$ X
{
$ n8 u- Z* T4 M0 k if (this->isCanceled()) {7 P) P, `1 Z4 R0 J
this->reportFinished();
! N/ @8 C+ }: j- T d4 G7 p5 o return;/ W, C/ [1 B. _; q* V ^
}' ^. Q* Z$ e0 N
this->runFunctor();
2 H8 Y. a" r( e: j m+ ?6 Q this->reportResult(result);
_: C# S+ L( R( A* |2 f# V this->reportFinished(); H) N: X. s/ `0 s1 V
}
9 B# g- S8 t2 _# {# t0 R6 u T result;0 R2 ?) X1 c6 l: w
};
( q. r+ |0 \$ l4 Z+ s T U) R2 l
, d# B) ]6 R/ T \) b& wtemplate <>
- ]' f2 m9 f, e8 y1 I5 Aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>0 R% _+ P7 Z# x6 E6 V. T
{
$ N# R @( D- _5 v8 { Opublic:7 J6 s( u5 T# `& n& ^5 p7 n
void run()) U& P+ n+ L* d2 m" ]5 \ L$ V$ z( C4 B
{$ o' x$ S1 T0 P0 L
if (this->isCanceled()) {
; T5 @" \$ N# y/ j5 O2 y, H& d this->reportFinished();: i$ \5 T* }$ Z: c
return;
) [$ X& n$ D8 I, i& y, F }1 b& p N8 Y, o) H" p5 L. X+ B( f
this->runFunctor();
2 ~ y0 m5 |( J; v4 I+ M this->reportFinished();
' `" t3 i( l* E2 l" S, g2 z- k8 g }
% K! R" e Z: U, P$ ?};
9 D1 W+ S E# Y! A1 B
- n1 m& A: G( U4 \* f6 x} //namespace QtConcurrent+ Q+ n) Y) O0 n1 s+ l, \: [+ ]/ H4 ~2 D
+ E' [. f/ P7 h1 {; B
#endif //qdoc Y2 L6 L9 Y$ E& Y
3 F, ?/ v( A5 p2 z" W) _QT_END_NAMESPACE$ e, q6 b: Y* G5 Y; P
QT_END_HEADER
/ u! w) w: N" i; m/ N
/ F* N, `' k8 X: p/ K5 k* p#endif // QT_NO_CONCURRENT" e% T( [" c' v, b. t
' D' Z# O* l) ~3 d2 q
#endif/ ]) t% ], @# D+ o; \! D
, s% s# Q' h( V# Y |
|