|
|
我对syslink进行交叉编译到arm,但是出现如下错误:& ]; _' _9 d: S$ S0 r& K( I7 f9 k
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
! \& w; W) k% Z4 ]" P6 A
& F3 e7 x5 {; t% J+ e这个头文件内容如下:
! d6 u8 E6 m& @+ h$ R3 K; I#ifndef QTCONCURRENT_RUNBASE_H0 s' L/ Q5 G1 P- q+ i
#define QTCONCURRENT_RUNBASE_H
+ H4 h$ r: e+ m5 s7 U8 v
" w) w# I7 V; ^+ G/ ^$ X( L. B#include <QtCore/qglobal.h>
* ?) F; I, }$ K3 G( O: X4 ~' }8 L9 `) |
#ifndef QT_NO_CONCURRENT
9 d9 ?! e# f; L# Y
/ P# l8 w) c8 a#include <QtCore/qfuture.h>
' L) F$ @4 v6 d; f5 n#include <QtCore/qrunnable.h>" K- w! U7 l/ x/ N2 F+ P7 q, v6 t
#include <QtCore/qthreadpool.h>
1 s7 | ?3 y, j, ?3 m3 D. N$ W4 n) e7 {- |$ ]# b; [2 m
QT_BEGIN_HEADER( W: L7 s' i1 E# }
QT_BEGIN_NAMESPACE1 J" [& |6 h0 [
' Z: V' m+ |" q5 V
QT_MODULE(Core)
/ q: z9 A! V; _- l9 d1 M4 l' _2 ]+ E8 R" E9 a5 p
#ifndef qdoc
. p q* B: U: ?5 X
1 q9 `0 i/ T0 { f$ a; Mnamespace QtConcurrent {
; q6 x( l# {& Q- l- g/ a( q4 }6 H2 q, I& z+ y
template <typename T>
/ e; U( k, B: ?$ T+ Ystruct SelectSpecialization$ N: W! ]' A; f
{4 C" ]' {: b4 {" {3 g+ s
template <class Normal, class Void>
) h. ~) s1 U1 S) p! d struct Type { typedef Normal type; };; s& M8 F: C! j* G" C6 K
};
' l4 u6 e o3 R. r t& a3 W; a; B# B" \/ |8 q! _# l
template <>$ {3 P9 h* ^3 A2 _1 S! a7 v/ e$ C
struct SelectSpecialization<void>
$ d y8 a8 V8 }. i6 D{* r8 k0 `9 j3 ?
template <class Normal, class Void>
4 w8 @: W0 s! P" [ struct Type { typedef Void type; };
9 d2 C9 k/ F: c9 @( d2 X};
! s; {' Z6 S# n1 r( j. g3 }! m. q3 X8 P. @- D+ |0 q" ]4 p
template <typename T>
% D" Y3 t; |7 ~" Z bclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable# q! K! |$ c1 U8 F- H
{
3 X% V3 [ E# {1 Spublic:
- M/ Z% W% U: R) c QFuture<T> start()' {. g/ f6 K. C, b- T ?1 `
{
6 O! B8 @; C" ~1 d6 P this->setRunnable(this);
( N8 Y5 e7 M( k. D this->reportStarted();6 w1 t! k5 _/ O0 w) i2 w
QFuture<T> future = this->future();! ~' k; R2 j+ I: w9 I$ {
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 } Q p. ` t% b4 P7 o; X
return future;( H0 @3 d1 |* i1 M% \9 k8 ^! i
}
. G" G& O* _5 q, E4 m3 N0 g- z7 v% L+ S: ]& c
void run() {}2 m" X; e0 |. h ]% j( H$ a
virtual void runFunctor() = 0;
" X4 p3 p1 t1 ~; M; D};
' r3 |. G: k9 h2 Y8 F: `& e) n4 c" t6 A& X C; g( y
template <typename T>9 L% S/ Q. ]2 k* q' `
class RunFunctionTask : public RunFunctionTaskBase<T>
* O1 K0 ]* ?3 A8 z( V$ J1 f4 h{* D+ ?' M* t, o0 y9 i5 t
public:
- F' w! G! \' V. H4 T void run(): p" F& ~, E& ]! r
{% z7 x! k+ v5 p: P% D4 A
if (this->isCanceled()) {
" N( W" Q/ w3 y this->reportFinished();
# q5 b* W5 K" F" m& C return;5 c. i5 X% d( e
}
2 h( S4 j3 a2 ^! _* c% b! ~ this->runFunctor();
+ D3 {2 J0 g) \ this->reportResult(result);
& C' s: E0 {( h this->reportFinished();/ i$ {+ t% e3 o# Z4 J, J
}; O: V7 K# X0 [, \: t9 U$ b+ B
T result;0 Y' |$ i# |$ b5 m+ E# f
};
$ q+ o/ Q6 ~6 A' P4 A. r" l5 t: F$ F( [5 L; v. Z
template <>2 T3 _" A/ I& a* u
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
# L; M2 n! i1 D6 W/ j9 T) A6 w{
# M+ }, n1 W& o2 a6 b1 D7 A: D7 Wpublic:
4 \) q; i! b0 h5 \" A) G& d void run()
- b2 d2 Z' E7 d+ p6 i# I: m$ c7 ~ {
; A. j8 R8 `$ e! K if (this->isCanceled()) {
/ |$ I. ^: c& S0 } this->reportFinished();1 d8 n9 W: e0 ~4 I3 }
return;
) w& M: R7 _( G0 ~9 Q9 ~ }
# a! t* L+ x0 \ M8 p this->runFunctor();" P# `( J4 F: L! Y' o! s$ S3 g
this->reportFinished();8 V/ {: ?) {4 S# b- u! W$ M
}
9 j( @' _- d7 ^0 V5 M7 N) t4 E};+ \% M( n0 ]! y9 C4 Z5 y
" K: h) F, [2 f0 H} //namespace QtConcurrent
" Z9 j- \5 t' ^0 K4 L9 p
( b2 @" s5 B6 z2 u+ h0 p#endif //qdoc
; D; x0 G1 H6 J# g) s
1 m( ?- b! K2 {QT_END_NAMESPACE
E$ R4 j& w' P j% ^! T( B. ?0 ?QT_END_HEADER
, T0 O: u0 ^8 ]+ V. A5 s; I
) ?7 v# h$ e! @1 A$ S. E, V; x1 O#endif // QT_NO_CONCURRENT
7 m, r/ N4 x" S( r8 p' _* ?5 J9 A7 d! C7 t
#endif3 O: }, U F: ]4 R1 B6 ]
. `; Q! O3 ~4 l0 `. [% c! _ |
|