|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( S( {; O" T7 Z: M+ L
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'7 @& E& f( H0 }! B3 T. W
8 R' x7 r/ D8 z7 _这个头文件内容如下:0 n! @! A* q6 U H% z1 Q
#ifndef QTCONCURRENT_RUNBASE_H& [4 g+ b) Z( G) D* a: _
#define QTCONCURRENT_RUNBASE_H* b2 R _; i- g8 ^ F
' ]4 N1 u; m9 Z; t3 B#include <QtCore/qglobal.h> h# \* g9 v1 b# c
" R6 `% Q2 G8 T6 m1 P
#ifndef QT_NO_CONCURRENT, v8 l0 c# {1 f9 r! p
; l* u- p- u$ Q1 y- Q/ A$ w8 X+ v2 V
#include <QtCore/qfuture.h>* D$ D3 Z8 I c7 p$ k }/ B* I" h
#include <QtCore/qrunnable.h>8 `6 a: q: m: g! m( m( V5 @( f
#include <QtCore/qthreadpool.h>
1 h: b( w" S* g# i9 q
& |$ z# Y9 J) j* Z& GQT_BEGIN_HEADER
0 t7 s6 m$ a/ jQT_BEGIN_NAMESPACE
% \$ v2 I5 ~/ d( f
% c2 `* \" u, BQT_MODULE(Core)
1 t" p h4 n: }8 H, d* M& |' p; z# c+ ]3 t0 t4 S0 \; V- y& A8 v
#ifndef qdoc
5 E$ I% _- c4 C$ h0 j
" e! Y4 [0 x3 @3 Z) s% K6 tnamespace QtConcurrent {/ F5 c! i& |* O9 m: H; l- U( F+ @: J7 j/ }
- Y: P* {$ p: y* [# e, Utemplate <typename T>7 i; f' H3 z5 m7 {4 U
struct SelectSpecialization4 s; ], Y8 v) m
{
2 c0 B( b% F' p1 E. t template <class Normal, class Void>! W, r( s& b+ |: s1 z% C) O* X& u
struct Type { typedef Normal type; };
3 e# c; Q, T- x! Y. {6 s& L};+ G3 I" V6 C: R% M
) f5 h6 o" K' @
template <>+ l K3 w$ \ w/ u
struct SelectSpecialization<void>" T3 G. j* k' ^$ B% }8 H" [% H# P
{& F7 y2 C. `4 Z4 {; G9 `
template <class Normal, class Void>
1 ~; t e$ i( M4 F. B0 I5 b struct Type { typedef Void type; };+ ~2 _" a: H+ Z& E. R1 G: @
};+ |' E1 P6 |; V7 E: H
* v) T8 o7 K; X7 j1 I; c, I ?5 Etemplate <typename T>
5 n- o; h/ Q* X" n+ S; Nclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 J) Q% @: W2 i{, x6 O$ S. q" Z; l s
public:- l5 }1 A$ o5 S! Y' C
QFuture<T> start() j. Q& |! H' B) k
{) `3 @1 s. q# ~: F
this->setRunnable(this);' I$ d# ]9 e* D! Y6 Z4 S8 U0 Y
this->reportStarted();
9 Q. p; L8 b0 F( L8 f QFuture<T> future = this->future();
4 h$ Y W6 w- L9 y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 p/ Z+ H5 \; i9 R return future;; f3 B, v6 L4 q+ I: @/ R) e+ C
}
) Y1 c0 e; m+ i
2 v! h- t# m, u" n0 O* f+ O7 C6 l void run() {}
, E1 Y) a' U5 ^9 u virtual void runFunctor() = 0;
, w9 b2 h {; y9 V};6 e/ A8 U# ?: [2 v; I
( ]) p& x. { `9 ~. x
template <typename T>
2 D: Y e* m) @# w2 C) iclass RunFunctionTask : public RunFunctionTaskBase<T>
+ h* w+ M- Q) {* v, t$ |* W{
5 r P8 E+ j. z/ W2 H" X Spublic:
7 F4 ]2 E s* Y void run()
* x2 b- d' X, k% J' G+ i {
5 ^& v( d% H$ @- }9 e# [, E V& x if (this->isCanceled()) {1 x: O) e0 `, |. F0 b: o
this->reportFinished();
$ w9 o9 G. L S2 V& } return;$ E9 j9 G, p3 A# W. E' f
}4 k5 j9 I" y$ i8 d0 z
this->runFunctor();
2 y5 ^* L2 ?6 M this->reportResult(result);9 i* j% ~6 V+ l8 e1 g7 o
this->reportFinished();7 }$ l) X. D" s; \* U0 O- k' j T# c
}: M8 |8 {( O2 f
T result;
2 M7 h0 Q; P; ?4 ^% D};
! c, f; d, {% [6 V: c! M
7 }6 Y D! A' x8 y# t+ |template <>
' u+ b/ G6 J5 I' a8 i3 Gclass RunFunctionTask<void> : public RunFunctionTaskBase<void>! t* j; \! v! n" @2 p$ E
{1 K1 T! k$ V5 A, @
public:% q0 {, E! Z! G) v& ^0 v
void run()
, E6 K! d2 E$ o; _4 ?6 ^: A {+ Z& z, R' }2 n8 q2 q P* {/ v
if (this->isCanceled()) {
# O; L7 z7 [8 u3 Y$ _4 L% y this->reportFinished();/ I9 ?1 z. X& w
return;& l' f/ z6 m1 t3 Q3 j# Y3 s/ U
}3 P' |) P# U' J
this->runFunctor();7 o2 C+ B+ _* L o) F) N! J
this->reportFinished();
) U5 b9 H) d4 {4 h4 c. g7 q" Y3 ~( Q( n }, @0 j+ x V6 N% ^4 T w
};
6 Y. m1 s2 [* _& M3 Y- x, ^ }
; `; X+ f; y& R e} //namespace QtConcurrent1 ~7 f6 F4 q1 a) ]% r5 `8 a
& Z+ s2 J1 Z+ M; c
#endif //qdoc
# q# O5 | v; b8 e( v* a/ o
8 k! c4 p$ A9 H- mQT_END_NAMESPACE
; I8 o. ?8 [3 g/ DQT_END_HEADER
: A/ _1 W, [3 S
( c7 Z g: h4 j A$ i#endif // QT_NO_CONCURRENT" K, `$ J3 t- Z3 P" t3 h
& y4 l- M. q' c# l3 q2 ^# _
#endif: l7 d* ]: k7 N O8 ~. T
V" y% N' m# K3 Z" \* V
|
|