|
|
我对syslink进行交叉编译到arm,但是出现如下错误:8 C, ]5 p; X9 k: q- H
/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 g/ Q- i2 S8 m1 f6 M* b. v8 C
3 N8 r g: L- M, | w* t# P
这个头文件内容如下:
0 x* \ \# p2 g4 l9 `! R#ifndef QTCONCURRENT_RUNBASE_H6 F& x# ]- o( X$ s( h K' z
#define QTCONCURRENT_RUNBASE_H
6 @. _1 v7 B% [5 g7 `4 Q3 T7 [/ }/ K! G/ ]
#include <QtCore/qglobal.h>
1 h! S; T6 |/ t0 m& v) l1 j4 u) |: v3 O* `: Z
#ifndef QT_NO_CONCURRENT
$ ?0 O( m/ a) ~% U9 Q" g2 x2 O& P
#include <QtCore/qfuture.h>
! E. _0 D# o# \3 E# D5 y( g#include <QtCore/qrunnable.h>
* F( Y: q5 @: l8 f#include <QtCore/qthreadpool.h>- _6 V; U Z3 {5 N8 A
' ?$ j7 [1 T2 I" RQT_BEGIN_HEADER
3 b ~3 H Y e6 {) L& IQT_BEGIN_NAMESPACE
$ ?8 b6 [. w0 d: {9 P
" c6 d0 ?) X( SQT_MODULE(Core) h& U0 O" W) a4 e* c
. Q: m u! ]- J' d8 |
#ifndef qdoc: M. ?) h3 B) P2 H w1 U
6 @: ?, R) S5 }& [& y+ v9 Z9 T( l* Ynamespace QtConcurrent {
- y! K' z2 {$ z7 L. N4 s5 C4 b3 q1 q
template <typename T>
* K. _* h* W9 S( ostruct SelectSpecialization
8 O# v7 b l8 z+ h* t, \9 x" L* j{
4 U/ M4 m7 E/ Q/ ]4 H2 a( g template <class Normal, class Void>% L i% x2 M" _# J
struct Type { typedef Normal type; };8 l b* B4 c" a3 ]1 Z
};
) `, G3 Q0 i C5 V
' G- w: C/ s# Y0 Utemplate <>7 x# @/ t5 F" o; z, \, r8 _/ d1 M
struct SelectSpecialization<void>
( R8 C- A9 }0 {: e4 M& H v( b{
8 S# l6 `% n* v7 i; J* [ template <class Normal, class Void>1 c/ U, z0 S4 @, x/ G" E# h% P
struct Type { typedef Void type; };! j8 J' j8 V" b9 Y7 t
};; o9 l6 Q4 y+ K) t4 |- b2 \& N4 H
1 i0 J4 }" }. |* [( z9 i+ ktemplate <typename T>
: h, E7 u; @0 B( uclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable% _: j# U% d0 p# d3 L+ C3 C
{
, `1 n% s- w* [: R* apublic:0 g, t0 L4 U( c3 v2 f% Q
QFuture<T> start()2 p- Q$ F6 b6 l
{2 ?, O" C3 E. o5 c0 i5 e* I
this->setRunnable(this);; C9 G9 A5 U4 Y4 O0 ^4 Z0 r
this->reportStarted();
' V. j. U5 _3 A7 G' g$ b QFuture<T> future = this->future();' C" f6 f9 K) m4 \- I
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); `- c' I4 }4 J5 d
return future;5 X% E, h+ S" T. V
}1 Z4 E2 ~ X1 U" \8 p; h& u
! Z/ @1 ^/ [; w$ f# B/ g5 L& W7 { void run() {}
- c/ m: W9 ^8 y+ J' ?# }, y o* Q virtual void runFunctor() = 0; ]7 Y) [' }8 j ?/ J+ q- m* ?
};
N" `9 C8 d9 U% d( L- y
$ q) @1 G- J& b) Ctemplate <typename T>; r: \$ M5 w% V- \
class RunFunctionTask : public RunFunctionTaskBase<T>
$ w( x& f% O2 f1 B{
; p7 Y( p/ n' m" S1 {) K% `+ Q8 Ipublic:: J& C" o3 ^! M1 ~' L) O) D
void run()- j/ Y% f$ d# G
{
" H8 {( c1 ^1 F" W0 O if (this->isCanceled()) {+ _- y' U9 k4 Y# r7 X
this->reportFinished();
+ n0 C8 |. S; n% X0 C- @! M8 Y3 G return;! P/ q1 l! [0 N6 C
}
" O" W2 N; O: R0 c4 v4 }$ V. |4 \ this->runFunctor();* Y9 _% ^' i v T' F' r# E/ x& f
this->reportResult(result);( {* K3 p* S2 t% w
this->reportFinished();/ B: {0 _4 T/ ^9 ] @9 {1 ?; L: H6 B
}
- F9 K0 X3 V& ^. u T result;: t p- V. e( o; Q# P- l E- c: D
};
7 @: I0 m6 E. F3 O0 e% _$ w+ v0 j9 u6 i- j4 u. I
template <>
0 c# s0 `$ m* D" p' M: mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 t0 C& G6 I) N/ k$ x{0 u1 y, R$ ^. y& u# n+ h
public:8 M; d2 K( \5 B6 d
void run()
, t* g- v; E" ?7 C1 M, k0 ]5 m {
3 a0 ^$ n7 }6 ~6 @4 n) p ?! t6 U7 Y if (this->isCanceled()) {' K+ |3 c1 }' {, o! a0 k5 |
this->reportFinished();
# i, _, V, \; c+ s6 `7 U, R7 {3 y return;
; x N ]) w& b, a" a& N# e" h }
$ O0 [! ~# Y3 | this->runFunctor(); S+ P0 o2 @/ g9 l$ V5 }9 z
this->reportFinished();
( l5 e9 g7 F- [# a ~& ` }
" T4 E( k7 |( O: U* }0 f# T6 x};
3 }! \* c2 s5 s- L6 z
7 c* r8 b, m$ x% `; U h/ D} //namespace QtConcurrent1 i2 C" e6 k9 B
7 [8 g5 m& p# }2 J0 ]$ z#endif //qdoc
. c) L0 U$ @5 j" [5 [4 d2 n& N! ]# q3 ?3 ^
QT_END_NAMESPACE' w. d% w: n" U9 A- i. G: A/ b0 M
QT_END_HEADER8 y/ P& k, A2 p/ \0 x1 e z9 y
6 r5 |% a$ L. ~ X" D
#endif // QT_NO_CONCURRENT$ }8 v& _& M& T
8 z& @) o. g5 C+ f7 C# V#endif
1 p/ h3 T, A. ~8 f6 [% q9 O# K5 i6 Y- Z5 @
|
|