|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
- i6 x: X" ^" |" v2 \& R7 |/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
1 Y& b; W; q+ u5 N; M6 z& l/ [, q3 T8 i# s
这个头文件内容如下:
+ L0 G) x4 x: l* Z* }; g( B* _# P#ifndef QTCONCURRENT_RUNBASE_H
% z2 n* v3 d4 K#define QTCONCURRENT_RUNBASE_H
% I, ~) O5 ^# x( C0 E9 K6 v
; N% X4 ~1 X" _8 j#include <QtCore/qglobal.h>
! P+ L4 J( `9 y$ x- p; k4 g. N6 O% T# ~ W' O
#ifndef QT_NO_CONCURRENT
/ M+ i; R4 ?8 `- H0 k E2 D+ j& B- x+ U
' f: Q" X6 m- o4 O#include <QtCore/qfuture.h>
7 @. t9 Q5 n# O& ]#include <QtCore/qrunnable.h>
1 P5 G; x. ]' _' r, M. [+ n#include <QtCore/qthreadpool.h>4 u+ U/ O, h7 T' U" P
; `& a( S! O: y) O# a
QT_BEGIN_HEADER
" Q. x# Y: Y# VQT_BEGIN_NAMESPACE
$ ^ ?( f7 t; b7 i$ F- J+ {) v
! x( j% H3 m" M; {: B) ~QT_MODULE(Core)
3 F) y4 Q% o) B( m& M
. I8 P6 T1 s; e7 L7 b#ifndef qdoc
7 u2 {* w) v v% I n0 t* r* R( q+ {! A' l) |& l0 B* U. N
namespace QtConcurrent {. W" B$ B" P0 @# q: P# S
' R! I) u% k4 W8 Z
template <typename T>
, n- E* Z2 X- }' Sstruct SelectSpecialization0 Q' |1 W/ W1 V) w
{
: V; g. G% ]- ~0 P template <class Normal, class Void>
+ }9 Q% b# s8 J4 f& p- ?# J struct Type { typedef Normal type; };5 v5 ^0 D! J+ _$ W
};
} m+ k% ?4 Y. l) H0 X
8 d6 B3 @ u$ D) ztemplate <>
; _/ ]2 l+ U' A$ Ystruct SelectSpecialization<void>% p' y& d4 F% J0 h* G2 c
{
7 P; K! R1 _. r0 E+ c% ~* v template <class Normal, class Void>' t% ?9 h: J" @' O
struct Type { typedef Void type; };, m: b# V4 r# w: _+ Y$ Y3 _0 \0 _" h
};
( o. S& p/ p# T3 L" d, \
7 C5 L2 e( C1 N2 A/ B( p0 Xtemplate <typename T>
: ]% O& q3 Z0 rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 F1 l& g3 E L) w* @) B{
; r7 t: `- D$ ^0 w' h6 P7 epublic:
6 z5 D& Z4 H; e8 T QFuture<T> start() V% r% k/ r: ^: i
{
: `1 i, i5 k7 b: F# P. D) i this->setRunnable(this);! ?- d' k1 _7 j3 T7 m
this->reportStarted();
% k* [# L6 M" s3 u% d QFuture<T> future = this->future();
( g$ U3 u2 Q! V# {) T& t8 h QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; N9 q* y# F, }8 {9 f: y5 c& b$ ]0 y5 L return future;
4 @ V" \/ {8 C0 l }
- r* a4 H6 ]) Y# R& K( p$ V- ]0 i# n5 o$ u
void run() {}
% Y6 a7 v3 z" T4 x/ S0 f virtual void runFunctor() = 0;. H; n$ U( d2 |; l8 b! K- I
};
: Y* i) w' N7 z% C0 W2 j* Y. l8 d9 E- @3 [2 S9 I+ }
template <typename T>' w: @- C1 q+ h7 Q% y1 p4 Q( T
class RunFunctionTask : public RunFunctionTaskBase<T>+ I8 w7 y0 R! M1 v+ G
{
) j" h6 w3 {7 C8 T7 f! i5 apublic:8 h) T O5 y& c
void run()
" }8 p- b# z$ b4 R {
4 d. y( u3 A7 m$ U if (this->isCanceled()) {
$ F. H/ V0 ~! W& {4 z) s8 A5 x" d' { this->reportFinished();: w, P) ^/ g( T/ W. m6 \; u3 _
return;
4 |$ O: x8 R! D; d }
/ ?& x7 I! J& _9 x j- z9 c this->runFunctor();
& J9 q4 U2 t; W2 m- h8 W$ b Z this->reportResult(result);( @& D& {4 y/ x8 c
this->reportFinished();
$ l; r4 r- ?$ ` }1 O6 C; n' ?5 ~1 ~# x) n( P
T result;# N5 m5 J& ^. U7 |6 ^" C& i5 r
};
% O; U5 d4 x3 g1 ~" V2 G2 b6 |; k, n& I/ n) w; C" m h. \0 d! v
template <>
& S# C! _0 P1 `1 [class RunFunctionTask<void> : public RunFunctionTaskBase<void>' c5 G. }. D7 b* g
{' o, R* Z, E7 c- _
public:
5 Z. \9 B7 P$ @ void run()
6 d4 b) v; x+ i4 e2 d {" \* p: k4 s l' f
if (this->isCanceled()) {/ [! `3 D, l3 \4 c
this->reportFinished();
, [2 ?% k- u, V3 _3 s; {: M" i return;
/ z# t* i! H4 |# F: d5 j7 {; D }
4 v2 ~1 w# e. c4 f4 o& } this->runFunctor();5 ^ |3 K; ~& T |4 v. |2 y! j1 x
this->reportFinished();
! l" i. T) P/ O' d" l3 S L2 K. u) Q }
5 [0 X$ P, {; a M. M};6 v+ z+ ~3 U. u9 A$ Y# m, ^
& n' }' m6 N$ |} //namespace QtConcurrent$ L+ L8 G& J; P: r: R
4 W8 I/ p0 o5 V$ n" y
#endif //qdoc
) s, v" Q; c, x) g: t+ |1 S: Q- g. S4 V! \- Q
QT_END_NAMESPACE) u5 @! r, _" |6 ?
QT_END_HEADER
. r H6 b3 J7 x$ M: Y
6 S" G0 s4 B( C1 [& s#endif // QT_NO_CONCURRENT+ c# H& M- D+ q, v1 W/ H$ o, o
3 N: d; W# l2 ^& h2 n+ O#endif
/ v9 D6 N$ h0 F
% V6 n* |- m' J2 y& F9 Q |
|