|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
( H( [# F/ p$ Q3 d: W9 S% J% n# e% J. f/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'+ v! ^, ^7 g9 z1 C. G* ~1 s- d
7 I0 G! a; y5 H1 z+ _这个头文件内容如下:
3 ^0 d, j( b1 s6 x3 ]#ifndef QTCONCURRENT_RUNBASE_H8 j% X) c* d* O( f& m; \
#define QTCONCURRENT_RUNBASE_H8 s1 x. `) D, D7 ]8 }0 i# W
! v; r% j6 Y! [/ r/ o#include <QtCore/qglobal.h>' w @4 @! l9 m) B+ ]( B0 M
, K4 w2 E" k2 T' _* t#ifndef QT_NO_CONCURRENT8 _) |5 b' `& B" ~& k, a* P
6 C- b" h: Y+ t
#include <QtCore/qfuture.h>9 N" ]1 M* B) p
#include <QtCore/qrunnable.h>9 M7 I, W5 t( E. e/ W
#include <QtCore/qthreadpool.h>5 i3 d" v/ C* |8 H7 O- n
# P9 n! Z+ J8 c* h, mQT_BEGIN_HEADER
4 L) G# O! [: Q0 s0 nQT_BEGIN_NAMESPACE7 W, k' c8 U' Z. }5 C
2 z% P2 J t1 G: B1 {8 ?; N3 G0 \
QT_MODULE(Core)
) K( v# \+ |7 q( T h( P# j4 u- L0 d7 z- a" s
#ifndef qdoc) A' ]7 M/ J% Y; J4 H
& k8 ]+ F6 p: W+ i4 Rnamespace QtConcurrent {
$ F9 z/ x5 w' [1 p5 i) i e& y _# D4 A6 T
template <typename T>
, A/ e: j, ?: C# L' vstruct SelectSpecialization
4 T9 k& w' U; o, i2 Q{" d0 T2 }% t/ D' e
template <class Normal, class Void>
3 f% c! L, C) d/ D struct Type { typedef Normal type; };' ~' H. i$ A1 P) S3 W6 t
};1 T* X$ h! E' y( S' z
, \+ S- m) M5 _; Q, x- u4 G# ntemplate <>- I$ q5 P: {+ }) U9 O
struct SelectSpecialization<void>
) o/ ]- d2 z u{2 \8 l1 k w3 @
template <class Normal, class Void>
' M& o I- G" M: z- s struct Type { typedef Void type; };, H# V, N2 j# \- T; F f: }& k- K
};
% Q( x1 p/ D, R y( h" K
8 Z/ v1 O. V' q; ^: Dtemplate <typename T>7 j6 k0 B, l* b7 |$ e1 f+ ^
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
" D* k6 c( D& X0 \{5 J4 w9 l- {% D5 Z" E, a# G- M
public:
% H$ W. d Q/ k9 Z7 x V QFuture<T> start()
( I" m/ `/ u; d0 ^! [2 u {
, I5 A2 l# O5 q this->setRunnable(this);; I+ f, e& t/ S
this->reportStarted();! X+ ^ G5 V2 M9 W" o
QFuture<T> future = this->future();" c y1 o. _% s) y5 _$ F. ^
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
0 r0 N- J ]# u" w R return future;* {6 B" m6 u4 E# `9 X5 [
}
0 S0 j0 V- @5 N+ l& ]9 M: d1 E6 r6 v* B) ]; y% f8 W: g% \
void run() {}3 b; E9 H6 ^; H6 I
virtual void runFunctor() = 0;
! C7 a& Q9 T/ w/ L ^$ e$ \};# V: x0 ^7 U. v) K
% p5 F5 F. w% H: Ktemplate <typename T>
# ]* W0 \8 @% t# A6 A; Fclass RunFunctionTask : public RunFunctionTaskBase<T>+ O5 d" h j+ r" N4 B+ `2 G+ j+ f
{2 j T% ?7 J& o6 k& N# u( |' A
public:7 e! f4 q% K) _
void run()8 E2 w( X: H) ]' W( }/ C: D. i
{ U9 T. T: O( r7 m
if (this->isCanceled()) {
: g, t( C% L6 a: U' Q' | this->reportFinished();0 _9 \5 t% X6 K" N* Y4 h0 w
return;
5 ^3 I1 U9 m/ O; J7 W }; L: ]) M! A( T. \' b
this->runFunctor();
- ]2 A' r" J, S8 k this->reportResult(result);
0 N5 N2 }' k& {- p4 K this->reportFinished();( N: c+ X% b$ \3 O* O5 J
}) G/ V ^) |, g, H6 p3 ?
T result;
2 [+ t4 e# g8 M5 y};2 F5 q5 |% |$ v: `$ [
* m$ V* B& b% X8 P' t$ l+ Z7 c* b
template <>. j/ e+ g& \' a! H6 g$ V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
; p8 b) k+ f: M4 `2 Q7 V3 p, i' `{- |/ S& }: w0 Q3 W
public:
5 \$ E' b4 q" G void run()
3 r: d8 }6 ~* [0 h) x% m; f {4 F. `! h4 Y% e
if (this->isCanceled()) {) W$ w% w) T; w$ L" B
this->reportFinished();
+ @$ i" {% W( ? return;+ E }7 T6 J8 ~: c" n: v! l: g
}
{- C# p% j" b3 s4 C* C this->runFunctor();/ _ Q' ^9 @! R& W0 q+ U
this->reportFinished();
3 s4 T: y8 L R2 F2 i }
% K! m; i! k r7 g};) a( f# m, j6 \
9 |& Q5 H7 V) i$ r' [
} //namespace QtConcurrent7 z; `5 C% O8 ]# f& k
+ x. B, l: [ g. G" k#endif //qdoc
: _& b8 a7 x3 y2 A1 w6 a& l {, J- A/ I
QT_END_NAMESPACE
2 Q0 W* E. `6 s& D- qQT_END_HEADER
* y5 U- U$ Z5 E
6 _7 j6 V% M! f0 I$ s#endif // QT_NO_CONCURRENT
9 |5 X# Y5 e: V% T; }+ F* G
$ U& z7 V7 [) l# o#endif; P3 ~$ Z. f7 H. X7 X
+ J, b! P4 D7 G. u9 [ |
|