|
|
我对syslink进行交叉编译到arm,但是出现如下错误:' r, W" G5 @/ @' B" ]6 d+ s2 s
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
" W* t! ^9 m ]: O) w9 q% @ v, k( k. b: g
这个头文件内容如下:
0 G, @# }# a4 d: t6 w#ifndef QTCONCURRENT_RUNBASE_H
- y. }2 F! Y2 f+ Q4 r! S#define QTCONCURRENT_RUNBASE_H, F0 g7 e" B! e3 w+ j/ c
7 V) M7 `0 f# s. Y7 z7 W- g#include <QtCore/qglobal.h>9 s0 Q' R. u3 m( s' l; Z7 j2 T, U
6 x& N2 [! |6 R" b8 s3 G#ifndef QT_NO_CONCURRENT
" N8 J1 H! `) W% f( @+ q" j& M
/ s9 h. u* c- G- _ f' w r#include <QtCore/qfuture.h> V0 D8 z7 r) \9 `6 N7 V2 A
#include <QtCore/qrunnable.h>% O# C# ?* Z) s. n2 F5 }" c5 c$ N
#include <QtCore/qthreadpool.h>, C- k' ]2 k% p* X( p! j
; q) D- _: t& g0 ]' C. KQT_BEGIN_HEADER2 s0 p/ t3 y: z; v$ |( T+ k l
QT_BEGIN_NAMESPACE
5 C1 L! ^0 [0 Q; K6 e' C: P; l9 u
& W' z$ T8 J7 C Q$ T- T/ S, YQT_MODULE(Core)
+ h6 t& \, k% W. Z' _: V, H9 g5 v) b
#ifndef qdoc9 p% D4 u# N( P# ?% V. `. s
( Y; g r& O% a6 Z. K, z
namespace QtConcurrent {
_! j# x1 `7 u7 V1 v& @" ?4 @& o7 y1 m6 G
template <typename T>
; b k4 Z1 W+ b( Mstruct SelectSpecialization$ `- x( n% W( g @6 N/ m
{
2 `+ `) T( }+ H! N template <class Normal, class Void>
6 @3 r- a7 b |4 E, q/ m struct Type { typedef Normal type; };
" w5 f ]; Y& Y};4 C7 S; s7 a. ?# j
0 M k0 f/ p4 D# w/ }! v8 F9 ^
template <>3 L8 k9 R$ j# `# }1 }2 F% V
struct SelectSpecialization<void>. k& b! f0 w2 ?* v& Z( G
{( Y* z( ]7 d" ^& ^) H
template <class Normal, class Void>8 ^) r. v% V& \, ^$ g
struct Type { typedef Void type; };- S; ^( m" S, Q8 b4 O
};3 y; v' I& v8 x6 ~8 B$ v4 b z
7 r! Z8 c7 l3 b3 q% ^, o: otemplate <typename T>8 v3 C. `$ {. `& j1 a" P' l l
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' T3 b) c& h- u s8 O4 O- l
{
) b6 c4 F6 Z: Ypublic:
& ]; L3 n7 E. U( e QFuture<T> start(). J, ^/ o3 ~6 O- _. s& p2 x
{* b. X& t- Y, S# o$ M! `
this->setRunnable(this);* [% @' {0 u* M
this->reportStarted();4 P# S4 Q7 E2 H# W6 A. E9 f
QFuture<T> future = this->future();1 I! [( }) ]4 ~" g( K! [
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);4 I- D* Q8 H$ [, K- J- M1 V ]" d
return future;; n5 D5 @$ N3 M" z
}
/ P6 U1 s- t) H) ^6 V/ ]" B3 L, f
void run() {}
6 {5 X ~" K" i virtual void runFunctor() = 0;, }2 P8 h% b" u- f* x
};; V2 f) `4 Y/ [7 h1 o/ P) u
7 g. E. X7 [: q8 g$ `! U
template <typename T>2 M2 X2 F1 {% Q! A# Y9 `
class RunFunctionTask : public RunFunctionTaskBase<T>* ~8 k0 m2 S$ y
{3 S+ {0 T6 X% I3 R0 l7 F
public:
, g9 N6 x2 Q- T o/ X void run()
" C# } W2 m( T0 O; x+ @& y {
2 x& ?4 ~+ O/ m8 Z. | if (this->isCanceled()) {
# j" u ]# X, n! M9 Z+ E ? this->reportFinished();
- k( B$ S5 U9 x return;
# n. v# \( M) q1 g- P }' d( J7 R4 b2 c
this->runFunctor();4 ]# }' b- B: l9 r( {3 J8 T
this->reportResult(result);$ j8 ]' E, T( H( x. b0 N6 K/ x
this->reportFinished();
# N B4 b: y, l; q }
- P; U3 V7 ~# u: Z T result;
' e m! W% A7 _5 ?) m( o8 Z};$ g# h* ~' t x. o" A
' F* @! n; c8 t6 w$ h
template <>
) k9 d9 Q0 B' S: ?class RunFunctionTask<void> : public RunFunctionTaskBase<void>
- u9 A. \. m$ j E* W+ v8 {) o5 C7 E{$ l/ m7 k2 ]& _4 ` o0 Q5 E7 C
public:
6 v! I# r& {0 v+ O( K h3 J void run(); R' q3 b7 Y& ^7 R2 B
{0 i9 z$ C$ A! o/ p! r. H8 a
if (this->isCanceled()) {% Z' @, `' z3 @; b2 K. o: j
this->reportFinished();
- M0 @5 [5 c3 J! i return;
: f5 Z C, |. ?; @* L0 r( }- P }. F5 e; e" W6 X5 ?( P( Y3 |
this->runFunctor();$ E! x" p! \! F5 z9 k
this->reportFinished();5 l9 C' ]( _' {. q( r
}# G# @! A; {5 D' y5 Y- B
};
) _! x4 Q! v6 a
- F# F' E, U/ Z7 K/ C. h} //namespace QtConcurrent
& X6 i( [; Y t5 c1 ]) d/ C7 k, Q3 Z9 x! l5 G
#endif //qdoc# t7 j3 n0 G' W- m2 u9 M
$ R( `9 d2 D1 X( B5 Z6 E7 r( m+ `QT_END_NAMESPACE
* p; }* \ X6 w9 }( AQT_END_HEADER
0 _( g! x% A9 F4 {$ n
* f' P+ G' t0 C4 A#endif // QT_NO_CONCURRENT
3 a4 n* D6 S% x
6 R u# M3 G( I1 ~( h5 q#endif
( T/ F0 n7 P$ B. N9 @0 e0 Q3 a" F6 J9 O4 {6 l
|
|