|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
0 G0 I( W2 S0 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'9 z3 z& e+ c. K; v! d% R
4 b4 |- C" p8 B7 h这个头文件内容如下:. z5 V: ~. x; L+ X; q0 v9 n6 `6 ~0 x
#ifndef QTCONCURRENT_RUNBASE_H& [2 o/ ]' {4 q. H# c& {
#define QTCONCURRENT_RUNBASE_H
% ~6 q3 W" p7 F8 Q) c9 R. q+ y1 w2 G- N( p3 S
#include <QtCore/qglobal.h>
5 r$ L8 w$ F8 x+ y" a' S' H3 Z# ]6 {( h5 x, M- \7 T4 j3 f, D
#ifndef QT_NO_CONCURRENT. F8 k0 I2 m/ r/ T9 j
& W2 W% H8 U: S% I#include <QtCore/qfuture.h>) } F) E( a0 X. P8 z
#include <QtCore/qrunnable.h>' T" r3 Z0 I- k
#include <QtCore/qthreadpool.h>
6 A% g \, S+ ?, a: D- v2 s
( z3 Z" W6 E: c) o7 h' q- q$ u" jQT_BEGIN_HEADER
! o; ^& U! l6 o6 [QT_BEGIN_NAMESPACE
3 ?- \& O# V+ s6 b# C& D1 d* }) e/ z! L. {
QT_MODULE(Core)
0 K: k" n& m& _ b" i) s. d1 T2 K( g+ t; p
#ifndef qdoc3 X+ z7 N( s0 u9 i
, g8 w4 z/ t3 R3 B& p5 Hnamespace QtConcurrent {
. Z1 D4 d) ^* z: W3 }+ {! D
2 y& q7 D9 }' s+ U& n1 |, [template <typename T>
6 C. w/ r- w& m6 w" mstruct SelectSpecialization
$ h$ T% z; E% q Z4 \{
. h" _; a& D! ^ template <class Normal, class Void>
5 B. \4 |( r7 | struct Type { typedef Normal type; };
' X. U" I( t3 t" q};1 J$ v1 B; s5 W2 S9 h$ G; J
4 N. V: B6 N, `
template <>
2 \1 R, J+ Q# ~; R6 ?5 zstruct SelectSpecialization<void>. U! i! @9 y x/ U% P0 Z3 f) s
{
& u7 ], Z& E& n9 c2 w, c& J template <class Normal, class Void>+ c! B/ p8 {! @$ ]1 f+ w
struct Type { typedef Void type; };
# p; K& {' g, }/ J- B};
8 W* ?. G. J' o2 ^! H6 b. i7 `$ W1 n
template <typename T>- c. m! Q! k9 X* B/ i4 z- |
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" d% K9 A) N* m# q4 m# g* i
{
. i1 y8 r }6 R( Xpublic:7 G+ `$ o p$ L; H; J5 G
QFuture<T> start()
% H, d/ C+ A1 N) A! d5 O0 F {
1 `4 i/ U2 a. D4 }: k6 x/ b) i this->setRunnable(this);
- R% q* l/ r% _9 j u3 A: Q9 S/ C this->reportStarted();6 ?- P, l7 n" X0 x& m
QFuture<T> future = this->future();! U# d0 n! ~+ u$ x% c" C( E
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; Z$ U% A: T9 i/ b& h- d, j: r
return future;
: d0 K; l' q% ` }& t6 U* c+ K( @; O* |2 G4 [
* J" B+ A' \3 o% n
void run() {}
& A- u& s4 q' a. z/ d! f* \8 M- N virtual void runFunctor() = 0;
1 c; L1 g. x% U6 |; H};
/ x, N' j6 z1 g7 V5 }% N1 i9 d9 ]! Y. b8 j( V
template <typename T>
( y+ b8 D# b2 J# X$ Z1 X7 u- `class RunFunctionTask : public RunFunctionTaskBase<T>) Q1 a$ G2 E2 d1 u4 B/ R# r: N
{
3 V8 U7 Q& B" D0 E: F$ n$ Q; kpublic:+ w) }& V. i0 @' u9 m
void run(): Z/ I% V0 l- s: _3 f+ F7 b
{% q. S* e& O; ?, s5 l' c3 I
if (this->isCanceled()) {
0 s; Q2 a1 ^" B/ g5 `2 m7 t2 ?) K) G this->reportFinished();% c' Q/ B' r4 e# H1 b! e" |
return;2 m5 H K$ q# o
}1 z& D9 P4 X! l7 u; g" W
this->runFunctor();2 K9 q6 M' ^& g( s1 L
this->reportResult(result);
0 A9 j" @4 N7 a1 } this->reportFinished();1 B' T% C# y Z$ I6 h
}: z$ t3 S$ P9 \2 `0 a! j. F' B, {3 D
T result;
& L, E+ T; O+ u" u8 H};3 p; q" Y/ x: C
2 N; D w" } [template <>9 l2 P( `: T: ?- o
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ M& R7 z+ m% I) W+ r{! m3 ]) ]1 g1 C" I3 Q; `
public: m0 \1 y9 D! T0 l0 D; x
void run()& D: `% h7 P2 z! [) g* b$ N) K1 |2 C7 z
{9 r/ [3 |* M: b: {& P
if (this->isCanceled()) {
; |$ s) A8 W% U9 _ this->reportFinished();7 ^, O* Y* n$ }' G: S% P4 c
return;1 u% C' N& {* R; H/ S+ {: X- o
}7 L) {5 g9 }1 J8 W& I3 l8 @
this->runFunctor();
9 {: x8 ]1 i8 c' z6 V this->reportFinished();% H6 w, |# Y% g- P9 I3 x D. W/ Y4 G5 X1 ^
}3 X9 N8 G- q( D6 l
};) n; @; P6 L f# L( Z; G
/ n' m5 h) }2 P& \: H# @9 u% i" z3 f6 r
} //namespace QtConcurrent! y! q& F; e2 @+ B* u6 `
$ y9 ?! x9 {; e' u9 d7 a% l- C#endif //qdoc2 d3 l! M/ L6 S" a0 g7 x; _. N- D
% f) }# z; S! a3 l y) d V ?
QT_END_NAMESPACE
; w, V: A5 K7 _8 L/ w* T4 ^% IQT_END_HEADER
: c. e# `# e) Y- H. [ g
$ t9 {3 }5 R. O3 n; [#endif // QT_NO_CONCURRENT) ^0 x6 r; K4 l
) S8 \) N( w2 w4 W. p#endif
p1 t! w: s1 f$ s7 v4 Q8 |0 `
( C% c) n) r+ p# H4 d+ F. N5 n- G! T |
|