|
我对syslink进行交叉编译到arm,但是出现如下错误:
9 D( f( D r! j' D3 j. O/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter', ]& m! D4 B, ^
3 \6 x+ I' u4 v) b这个头文件内容如下:# x/ _( z+ s- ^1 `9 k
#ifndef QTCONCURRENT_RUNBASE_H
9 H$ o0 Q a, M4 ]( n#define QTCONCURRENT_RUNBASE_H
5 P- R0 K: ^0 Y6 q, B9 _4 ~# V3 Q; \" V' q+ z
#include <QtCore/qglobal.h>% \0 F/ \5 ]: T( U9 w6 X. X% M
6 h5 G5 I% q7 q6 g5 I/ m0 V/ P
#ifndef QT_NO_CONCURRENT1 Q; `% u% k& l9 V' y
1 n2 ~/ @8 R% M: F5 G3 r. d
#include <QtCore/qfuture.h>
! G: y3 h9 n/ e$ K- Y. z#include <QtCore/qrunnable.h>8 ]: d% `+ w. h3 p$ q& }6 {
#include <QtCore/qthreadpool.h>
T& |; ~7 b6 D2 |
$ X! V' k; P+ l8 f8 P2 m5 JQT_BEGIN_HEADER
) k7 e5 b0 R- h/ h5 Z( [. eQT_BEGIN_NAMESPACE( y/ A4 t/ H6 e9 z5 m& f
( D! }' y% x$ f3 UQT_MODULE(Core)
3 e( @# X. a; z1 T, n9 R% _' e6 a1 i9 P; O4 b
#ifndef qdoc
H! y8 ^# M8 N6 N* I% B; N% K2 T
& Q' ^4 j1 q" S- ?) Znamespace QtConcurrent {% r4 d3 A9 C# b: S+ Y( I5 W
: b2 N& C( U5 X% N8 P
template <typename T>0 T- j6 p$ F, d+ `
struct SelectSpecialization) n* e7 y7 _# I! b& g4 v6 T
{5 K( R. e$ B) }. P$ Y2 c" h
template <class Normal, class Void>
& U* J2 c" z/ N x# ^% J6 i struct Type { typedef Normal type; };
5 v1 m2 v; p% D& t/ p3 C};
7 D$ ?7 _, D5 r6 L1 E& U3 Q: C$ {
template <>
. j9 \% X# B- k* \4 E1 rstruct SelectSpecialization<void>% w0 p3 o8 [$ G$ H; b
{
) c1 T' }% ~) {) o- H" ? template <class Normal, class Void>$ a0 Z7 j( M# h) Y- R
struct Type { typedef Void type; };+ I o6 I+ ~7 h. m4 l
};3 D) B& Z. x& h, m& b9 D: t8 Z6 o
6 p2 P9 Q6 F) o9 C7 L$ `- ]$ V
template <typename T>) @- E( k0 J; i0 V2 w
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. l/ E" S9 O* W- _4 B0 K{
/ `! g& B# D, y/ v# Mpublic:
5 _, J; v, m I5 ~/ K& u' o QFuture<T> start()* L5 X/ d+ @% X4 Y3 a+ m6 e0 o+ d; E
{1 w5 s' k- b! Y9 M7 n+ _+ J. L
this->setRunnable(this);7 Z. D8 C4 O& h2 T3 @5 b, f
this->reportStarted();
& R# Y# |9 q# [2 c/ w: F QFuture<T> future = this->future();
9 A; M4 Q" u( e* o/ N/ G; K QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
$ G# Z9 S4 P5 ], y2 h9 L return future;
- L* `0 J, J8 [ }
3 i6 _$ y2 b$ N3 v6 q
( w1 y3 h# w- k- U4 x# o" q/ x void run() {}
. N. P- u+ c7 s/ O' }" z' O* y virtual void runFunctor() = 0;2 C( Y/ W- k9 y; y
};
# Y7 K8 R% X0 q& f# ?( ] `$ G. a, b, N( F+ H! w2 k- G
template <typename T>
% N+ s6 b" J, l* h0 Y! M; Aclass RunFunctionTask : public RunFunctionTaskBase<T># \( C3 e: U7 m; m v4 N6 H
{
2 q# ~+ ]' T3 N- qpublic:
9 x9 q' |' A" V% \; U void run()' W7 Y3 X$ c3 H! D/ U5 _$ ?
{
4 I k* g4 Q8 ~" }9 Y if (this->isCanceled()) {5 I* _0 z5 I( [: j! e' l" E7 G$ H
this->reportFinished();
! W0 T) }! r6 ^/ M4 w- P4 a5 i return;
" O& |9 j( B( D# X4 j, K }
9 P- q! t- S# ]! A' m this->runFunctor();3 O$ \8 K7 l* m; k, G( z
this->reportResult(result);
1 ~+ j( |+ \! Z% m; D: X1 O this->reportFinished();1 L, D3 L5 n. i9 N' o
}
+ C7 G+ O% R9 f% o) t# {1 U T result;
+ _3 g! k7 A* a) i2 x};: o) J* E$ z- R- Q( g. f8 |! }0 v
3 o8 y* ~1 k' G7 M* }template <>
4 k% |# q* b/ A* g9 j0 Y8 m& ~; [class RunFunctionTask<void> : public RunFunctionTaskBase<void>3 P5 v" H( F. E2 Q8 u- g4 d( }: u( Q) `
{
& s3 b M- h0 D0 L! q" G5 Spublic:9 z( j, v3 A& s8 P/ |
void run()3 z4 Y% j( g$ c( K* y7 X# G
{
7 H2 h2 d3 M; I& d. p/ N" d if (this->isCanceled()) {9 u* p1 Q$ w$ p9 H. q
this->reportFinished();) g0 f% h4 G3 ?$ ?/ q
return;
: q {6 t" S" c, q1 O2 {+ o }- T. t& r6 u+ p. o$ K) e' P
this->runFunctor();
% ?! w# e* S" M' V$ } J9 ?3 Y this->reportFinished();- T0 H. G+ A, t7 B# D
}+ z5 B4 x- [# X& D: y6 d# s- f9 I! _
};
. @8 b, a) a9 }# j' D0 b* J
2 K% M5 A9 R! c: ]" u} //namespace QtConcurrent
& Q3 r% t8 X. s: P8 e! M& p- h% H4 x9 c* m
#endif //qdoc8 |# R8 x2 b# }- F" Q6 q& ^
/ n( e# h% m2 V; E; g3 u( f
QT_END_NAMESPACE& n+ I4 w4 c; ]$ U. x6 e8 k$ v
QT_END_HEADER
; i4 m% V h( J4 H0 t7 S4 l$ L* I) j# ]& C8 `$ J( @7 m1 x
#endif // QT_NO_CONCURRENT: ]2 K: I5 A' L8 e- L
H) g$ I+ e4 A: q- O0 S#endif
8 ^# C0 W( O7 ^8 p' e
- Y7 y2 L( R% J |
|