|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
- h1 c. H7 R: D2 H8 |/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
. Z0 L" s) ?4 g( `' _2 c
; X" h. d0 f* [ r1 `9 S这个头文件内容如下:
2 b2 i7 `$ i+ i" ?#ifndef QTCONCURRENT_RUNBASE_H: Q; q6 C- `+ q; q" [5 i6 w D
#define QTCONCURRENT_RUNBASE_H. X' a7 s/ D% D
) Z, @% [3 E+ k8 Q. w1 D#include <QtCore/qglobal.h>
' p" P* g3 |$ ^7 F: \- S. ^5 _0 C, a# _3 ~. o. Q# i
#ifndef QT_NO_CONCURRENT# A2 @+ Y5 s8 ]/ @5 z
2 S7 O0 `2 r1 ] d& A% @3 ^: b
#include <QtCore/qfuture.h>
4 l3 i) S( ^5 ]) X3 q) Z" A4 U#include <QtCore/qrunnable.h> P& O# Y& E8 G9 n
#include <QtCore/qthreadpool.h>
2 W8 e2 x! v; k' b
8 w% X/ U0 N% B1 i, E4 T3 D! `! LQT_BEGIN_HEADER
; o- X, l6 e$ I0 T0 r9 N( K# dQT_BEGIN_NAMESPACE( t6 C0 y: r `5 n% j7 x
1 N4 p+ t* p8 cQT_MODULE(Core)0 |5 I' A$ r4 ~* \ e' f2 E0 G- v( E
9 x( B# E( J! c7 E
#ifndef qdoc! D5 Z# z: [0 Y w1 b, e. G
) d$ R/ b6 W- L+ t* v
namespace QtConcurrent {
# M4 c1 R; k% P$ R5 b8 l6 f1 ]6 c: R+ }3 i e5 A" H3 O+ B+ t
template <typename T>* d p5 {' S2 ?+ A2 h5 p, x& N
struct SelectSpecialization* P. l6 f: Q6 W
{
- [' i( v6 B# n k: | template <class Normal, class Void>$ V) Y# ]* c0 X* H
struct Type { typedef Normal type; };; G2 P9 t% F0 h; f* S t
};
5 z3 H) B6 _3 B
5 ~: w' c9 o2 i* |9 [! Ttemplate <>
9 Q h' s/ @! ~struct SelectSpecialization<void>! L* _9 M) D- g2 S' l# v% a
{
. V0 {8 ]- T8 F, H template <class Normal, class Void>2 I/ E# \9 Z; k9 v; @ R5 Y! n+ A
struct Type { typedef Void type; };! I5 ~8 ? ^# x2 B! t# c
};" m+ Y$ Y# P+ w
5 S+ Z: r i) t; U
template <typename T>7 E: W; n0 S" v) ^
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) q: X& E/ Y6 L5 ^$ \# Y3 x{
, ]; v$ t8 f5 a8 o7 Dpublic:. w0 R1 x. T+ ^4 [' E9 p
QFuture<T> start()4 B) w. v/ X% o/ p! K
{4 {$ B9 q* q- ]/ K# i% r! N$ v$ ?
this->setRunnable(this);
* F: K# z* Z4 Y, H5 u/ P this->reportStarted();) L" F( T% {6 D
QFuture<T> future = this->future();. J" H- y& ?( x/ ?. ?9 h
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
3 u1 |+ }) S1 [9 @' k ~, E return future;$ _( Y, u0 E V# L
}
, Z; g, K# D ]( q* I- |1 @2 L; l" H4 ] _, I8 A
void run() {}
q! D5 [$ R% n virtual void runFunctor() = 0;
7 D3 x: n# E" S' q7 ^9 v4 B* k};! {) t: E; G ~5 k8 t" i, C3 R
# G ^$ E: h% h1 d1 o" Y
template <typename T>6 h1 Y: i) ?6 o9 K. \# n6 I+ N4 @
class RunFunctionTask : public RunFunctionTaskBase<T>
/ a: ~2 `8 G# Q{
5 O5 h3 q( x: N* ~& Lpublic:$ `! |3 L7 |7 H3 k/ N1 l! L
void run()' i8 v: a3 P! }' F+ |
{
; L( B6 R4 t& }8 H* T' q if (this->isCanceled()) {: b9 c3 x' \. R T7 O! M- ~
this->reportFinished();- |7 G& s [2 g: u4 ~% V h4 \
return;
2 [- ~1 T7 L J! j+ D }2 Q5 ^' d0 `0 O9 @9 @
this->runFunctor();
" t$ p7 Y% L5 e ~ this->reportResult(result);) r- m: W+ q9 a3 W6 a9 V% S- g. g
this->reportFinished();- S, I, t3 o6 G/ I1 R7 ~) M
}# v6 d. d0 K. q6 J, x
T result;) H' C- y1 S. F) y3 M D9 ?
};
- u% A7 v/ k. S( j; W8 Q* B2 t0 {' t+ T4 Q5 ~- R/ P7 P+ S1 ~
template <>( W6 A" k, W0 V" p
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
- i+ N4 N: m* \- Y$ P7 L$ n) Q{
% q) r/ |% _* u0 Qpublic:, {: ^* F. Y Y5 S/ Z" ?
void run()
) M6 X5 o' j8 }( }7 W {
0 E: s: X7 F4 O if (this->isCanceled()) {# | c' D. k# y' y H- j
this->reportFinished();. B+ M0 V6 N/ O& h, @
return;1 i) R8 g& c. H1 E! ?+ O) W, } L
}
6 l% v" s8 |! I' ~) J this->runFunctor();0 G6 S3 m' J+ k6 z% N0 e- Q
this->reportFinished();( S l3 x; Q; \: j6 l w
}. Z7 ]1 `. Z$ O) i, [. M @
};% w; J0 ?7 j. R0 C6 E$ l
* G) U- X/ u4 c
} //namespace QtConcurrent
: Q. h2 o# A+ k1 d$ r0 q$ s8 y. q8 q3 q e9 y& d2 a
#endif //qdoc9 s. x1 \' V2 N% R' V
( y% z8 f; _. v L5 c
QT_END_NAMESPACE( C0 t; U9 @3 S" Q
QT_END_HEADER5 |5 ^2 l: q. h. u3 h: C c
' v* r1 d( ^: O6 ]& }
#endif // QT_NO_CONCURRENT
1 p% j+ e% y0 z! A4 p V! |! |
) G) j% D9 y/ J, Y% b+ i3 Z" p( p#endif
5 N# X$ o9 U+ [# Q5 Y' h7 ~2 t( i3 j' H8 D4 q- V9 j
|
|