|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
; o7 }- ~* ^( e: m# V- C3 N/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
$ q' Z% o' k; P: a: A. i- O, T; E! ~, {1 Y
这个头文件内容如下:
{" H* D6 P) S- }#ifndef QTCONCURRENT_RUNBASE_H; o ~1 {1 i4 y4 e( O @8 H/ [+ q* F5 c
#define QTCONCURRENT_RUNBASE_H' s6 ?- @5 x' K9 n* a* N) ~
' ?7 q0 d% t" F3 o# ]* t, Y. [
#include <QtCore/qglobal.h># @; ^. D. F y. `
: e7 C6 V& n9 x( F7 C
#ifndef QT_NO_CONCURRENT( f# w2 x: `- \2 R# l7 ^
4 m3 p' R; o0 w. `#include <QtCore/qfuture.h>
" Q7 l1 R: p: r#include <QtCore/qrunnable.h>' V E. a# d9 t, H
#include <QtCore/qthreadpool.h>
0 H1 ?5 d( ]8 N9 |2 z @2 R
9 K2 Q. O0 n: l3 ~& x0 gQT_BEGIN_HEADER
* O, z; M! {( i$ v( mQT_BEGIN_NAMESPACE
0 G8 n; j, e. d. a+ d
& g( B- l" W1 C0 |- o6 t+ P6 a: eQT_MODULE(Core)
; y# Z3 S4 y, ]. j$ Y( A6 ~, s& Y: t% n( Z
#ifndef qdoc
4 R" Q6 q4 H' v* E9 r3 b8 b4 l4 T- z$ D
namespace QtConcurrent {" _( k8 _% m; J0 l0 a1 x& I
+ c8 n6 J5 _; q( j: g/ ?) A5 x8 a
template <typename T>
. t Y' [1 t, Jstruct SelectSpecialization
1 s& L9 Q5 j( {0 }1 n3 _# T6 A{
) ?+ f/ V& n2 B' G" n; q+ s% W0 | template <class Normal, class Void>
+ A7 p8 J& h9 g! M struct Type { typedef Normal type; };
( m' e" x1 ~# k. S C7 Y};0 T/ W, [& x: f8 ]" e _
/ R: G9 j4 u' o+ A8 H# M8 ]template <>
_! U" Q# ?5 ^! F0 O. E" Wstruct SelectSpecialization<void>
$ S# ?& r- `& E% k# @4 {{
; K" L" E) Y( q3 z/ V% n template <class Normal, class Void>! l( g$ A+ k \; o8 i7 [/ ^
struct Type { typedef Void type; };! u0 u; j5 [) x- H- x: @
};
) k/ L3 B8 M: g0 V* \. R# X- f7 i5 j0 X5 v! g
template <typename T># \; g! J, m9 o. j1 c8 D
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable: L" T. Y: o3 I6 O
{1 H; b5 {' ]% j- s: ~: t2 h- P
public:
9 e0 W. W+ d/ a2 V N& c: o QFuture<T> start()" O' Q4 E, k2 h' H0 f
{7 I! o$ u- a) _( k. x
this->setRunnable(this);
1 Q4 R* m8 ?7 v# V this->reportStarted();3 Q' p9 a, G# t
QFuture<T> future = this->future();
3 A4 H0 E- k$ J t6 m! u ?& K QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
- a$ k- o B; z3 J: y return future;' p; ]% S, ]! G9 B7 j
}8 |! a2 b* C4 D( K0 o; s
( S0 |9 T8 N! r' X
void run() {}; G1 _1 J2 f' G6 d7 `' ?
virtual void runFunctor() = 0;6 t$ C$ G% [0 \! x$ L
};
3 j! T1 U! a# T8 E+ B2 x, s2 ^$ ]/ X# J' [
template <typename T>6 z% K1 W* t/ e( p1 J; b
class RunFunctionTask : public RunFunctionTaskBase<T>3 \# O/ D4 y4 c2 p+ q, ^, E' R
{
& H5 L+ v, C" D! y( r& S% Vpublic:" C: ^9 I. ^2 A! C
void run()3 _; c8 u" ^) {- Y
{, K, ?3 t' s" m
if (this->isCanceled()) {
+ R2 L1 P6 s, e( A this->reportFinished();
( S( U: G. }7 I5 d return;9 Z1 s- L2 f$ C: o
}: ~1 F/ l" P; \$ A3 I
this->runFunctor();
% F/ T/ e* I7 w7 p: A; n- z this->reportResult(result);. z" ?( K5 i0 ?
this->reportFinished();. ^) a3 T/ j* p7 }( a3 L! @4 n) c' K$ i
} `8 X) |4 ^& A9 s
T result;
3 C+ m1 {) z; ?% [+ o, x};
; Z7 _' c' g7 r0 N3 h. [; e+ h$ T T8 c. n! k* x
template <>2 P+ @7 K2 t/ \
class RunFunctionTask<void> : public RunFunctionTaskBase<void>- w' y$ s, Z* v* O
{
9 a! {" g( m; F! j: W% [1 \& w$ Jpublic:9 h0 e8 w! ?2 p; W
void run()9 m m) Z: ~* T5 G/ |( s
{
+ J* S# P7 b g* R6 m if (this->isCanceled()) {
8 H. y! f2 J( W1 ~; k this->reportFinished();5 x; }& l# C1 N+ z' Q* } v
return;! J: H3 ?6 ~" }: U: M1 h2 }
}
4 B. D& E' D% r: z, u1 Z this->runFunctor();0 x8 c9 z; V' R' H5 G
this->reportFinished();- k2 m: f H; y" i1 _( _
}
/ a+ A! Y* e* k2 r};
* `4 G# i% }, u( }9 K. {& e6 P
# P# r3 A0 `3 P5 X} //namespace QtConcurrent. R5 H. W4 e- x( V& _: a; B; @. t
( w( E% ?5 B1 B I" y#endif //qdoc
5 _7 F+ ^) ^4 ]2 B' i! `# ^8 ^2 J. a d4 i; v2 G1 v7 m& y; V
QT_END_NAMESPACE+ p! D$ @& g! [# z/ v
QT_END_HEADER/ \4 p, l2 [/ u7 w0 |
3 b6 T) h7 z1 _& y. K
#endif // QT_NO_CONCURRENT
& J+ G$ F) m' e! T& g T; o" W8 s
& i, A9 w+ x! ^5 V# F#endif
2 n2 l% M% t+ ^; u7 c$ C# O' n0 l
|
|