|
我对syslink进行交叉编译到arm,但是出现如下错误:& j7 S( ^ Z; X( j5 d# \
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'3 q- ~! a' {# }1 p3 @1 [
$ _4 L- h2 R9 t7 I
这个头文件内容如下:
# u* Y7 Y% ]3 A, `#ifndef QTCONCURRENT_RUNBASE_H! q- c, d9 m) g+ G& y- Y2 u0 D
#define QTCONCURRENT_RUNBASE_H/ |$ v0 h, X6 Y6 }/ C$ n- I
2 \6 A# u- v! i+ G7 O0 k- P#include <QtCore/qglobal.h>3 L' @6 `2 \9 R: l$ H
1 w8 v8 I. N4 [, c+ ~& }5 V
#ifndef QT_NO_CONCURRENT/ u& Q3 `9 r% [ C( R1 E4 i9 b; A
3 G) i, G# c5 F" ]5 X. x5 k. ?) Q#include <QtCore/qfuture.h>2 E) b" v. g. M9 x6 F( z
#include <QtCore/qrunnable.h>6 Z5 b$ h7 o# J/ V) k/ c
#include <QtCore/qthreadpool.h># I& \6 U7 {6 G6 P+ M
# j- p+ C* D8 c x( q6 eQT_BEGIN_HEADER
; d: V! ?( {. L' K/ U: { DQT_BEGIN_NAMESPACE4 ]6 e3 I6 `8 h# f- x" u7 u( f
' P& {! Z% W' d4 o) v9 I) NQT_MODULE(Core)
j- A6 x5 c* U, @! x* \6 L2 X' H& O* U' L
#ifndef qdoc
. l3 N8 V- h2 p8 R4 z( o7 ^
) p+ x7 ]' e8 t: M5 a3 q3 j8 znamespace QtConcurrent {5 j8 h* D& O" j( [& r3 e1 v
. L4 Q0 W8 `! v5 ~3 ]4 X
template <typename T>3 u# ~' l# |& W8 s/ [0 m
struct SelectSpecialization& ~5 d* R9 D# z0 K" J, z4 I4 [- S. T
{5 o$ ^- i( D) y: y" t! J& B
template <class Normal, class Void>. A/ u3 @3 I4 U) P% \, E
struct Type { typedef Normal type; };1 V& u4 v3 b y
};4 m+ N$ y2 s" y" \9 D) ]
8 i0 b1 K+ E) Z
template <>
$ s3 s0 c) F J+ i% h! @/ {7 O: `struct SelectSpecialization<void>
9 \2 e. w# K2 u" Z0 s3 ]{
* u7 \7 c. b' I( {, Q template <class Normal, class Void>0 ?) R* Z. u) d) W
struct Type { typedef Void type; };6 D& J0 W, C) U; O# o& |
};0 h$ l7 [' e+ E- e' j: R/ |
: }. A0 ]5 E% r' e: A' Jtemplate <typename T>: ], u& B% c4 I9 J# R& H
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, P5 U( ?$ P& q{
" ^# d2 c0 |/ S: ppublic:$ {0 D' D C7 n. _. o- q$ h
QFuture<T> start()
% a* J/ ]6 P9 V. v {6 W! x+ E) W' k
this->setRunnable(this);
2 M0 Z0 Z4 B( J% {. j! H) G$ j this->reportStarted();
o3 o. Z! H8 V- Z ]6 l( d- F QFuture<T> future = this->future();* z8 @2 s o' F0 b, s
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 w5 _: \- [: U ?2 Y0 `* t; r. K
return future;. g& t! v# g9 a8 m0 w @
}
: C- L2 F1 v* f) U5 |5 V f+ J. W7 h# U
, B' w3 V0 K" B: Y+ D1 f void run() {}% P- O1 K, X \& H! j2 z4 r
virtual void runFunctor() = 0;
. z1 g6 y# c8 ?8 ^7 Q};& P- p" ~0 A; h, x% _
3 [- k5 ~7 V! y; s* j
template <typename T>* C2 g$ }' Y. e; ^& O1 @
class RunFunctionTask : public RunFunctionTaskBase<T>
; J' W! k+ C+ w8 U{0 k$ h/ a1 U/ f T
public:
! n* B* _! J$ {9 O' ~2 |2 e- q" G void run()" g7 b# F: h# F$ |- O/ s; H
{9 d- f% b* Q2 _* `2 {7 K) E
if (this->isCanceled()) {
* I5 U P% J. X) d; D. L this->reportFinished();
( a6 y! [% K% v5 Z' J% d4 A8 ~0 B return;
- e0 T8 X k& ]9 B }
* N% y& i S% P' R4 y1 g1 G9 _# }& z this->runFunctor();$ T' I: w0 m0 Z, a w: y
this->reportResult(result);
A3 a- T* B% h1 f7 P3 z3 E: v C: [ this->reportFinished();
4 J9 F$ y$ Q2 z1 @9 C! t! U; i$ j }
, R1 N3 i7 n7 q$ J% h" ]5 J+ Y9 w T result;) P$ t- R# L9 D
};. ^! I+ U4 |) N3 J0 O* s
" n7 w+ ]5 b/ ~
template <>5 S$ r4 L2 \% h8 j6 k0 X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
2 y$ {# f+ z7 s" @, b9 |5 R{
+ N* @5 V+ M# }, x* v7 @: Dpublic:- O7 W% a* Q& u
void run()
' s o) P6 M% f2 I' H {
/ R2 [) n* }2 Q- g2 @" U4 V/ O8 d+ T if (this->isCanceled()) {' H" V) t* U+ d& P. K8 p" u
this->reportFinished();
# G) K( t, z; p4 @ return;
0 K& w; k- A+ q, {; n# F, F }
1 s2 h( f3 I# D O9 c this->runFunctor();7 q& F. y- b8 q/ T( q7 T' x8 d
this->reportFinished();5 g, ^7 y7 `# G3 p. v% U
}6 Y2 M/ X% r0 Y$ Z; |
};
! m( w$ G# ^0 q+ y7 N. U6 o1 s2 T% e2 m' |
} //namespace QtConcurrent* M; ?3 e) B! [0 O3 ]8 s; Q
5 K3 C! v% Q! @2 `4 [4 W#endif //qdoc/ {6 {& m; i5 I. c+ |4 \1 @1 {
. `& m- P, u8 }
QT_END_NAMESPACE
% K/ @ X8 X1 sQT_END_HEADER8 B" T2 O2 ?. S! x( N% O' M
* Y% {6 \7 p' s4 B" R! c1 X4 @
#endif // QT_NO_CONCURRENT
/ T" q! b( g% w* ]0 z: k$ l: h, \: C t1 J( d; O
#endif
5 C, n( x* S/ u9 ]3 \5 |
& d( T2 _7 p: q: _: O* c7 F0 X |
|