|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( U% b5 F Q$ e0 s! t$ S
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ ]( l6 j/ G0 a1 [, ^- E! A& T3 A( y9 J3 J0 s5 o
这个头文件内容如下:
9 z) A$ T4 y w0 S: z3 Z1 m#ifndef QTCONCURRENT_RUNBASE_H
4 t/ F9 o( N% j. d$ Y( ]8 w#define QTCONCURRENT_RUNBASE_H% O3 |5 M/ t8 |. n
5 n J; T) ~. Z
#include <QtCore/qglobal.h>0 R) h/ S* U4 C, v; U
0 z7 l9 |; `- u) C9 l C7 N0 w3 A" Z#ifndef QT_NO_CONCURRENT" m" ]( a/ A2 ?* G, l! Q' s5 A8 A1 j! r
$ ?2 p. \. b' |5 ?+ I5 d
#include <QtCore/qfuture.h>1 L1 a8 G0 k0 v
#include <QtCore/qrunnable.h>
u$ N: b0 P' t0 V4 ?$ B#include <QtCore/qthreadpool.h>5 E* T: k6 [; e, n% c9 x
+ V+ o8 z* L( D/ m
QT_BEGIN_HEADER
9 x) r# ~+ H& j( m4 q9 K EQT_BEGIN_NAMESPACE' g9 ]3 E' e: h6 o2 I
, N; C5 A( j1 W. k$ nQT_MODULE(Core)" i- E/ f" S- d; a, Y
4 {" n) S. \: ]! }
#ifndef qdoc
' @3 N+ D8 z/ T8 s' m" H7 k+ A+ a/ F7 C9 V7 s0 h4 Y
namespace QtConcurrent {
8 k) Z* p* k9 ^2 w; o% U+ x: l. s8 r, i ^9 u- V
template <typename T>/ y& G6 z& `% z5 x/ X1 g
struct SelectSpecialization+ D$ }9 y; d0 b E% j a& j
{$ P! d! y# x- x5 h* n. k
template <class Normal, class Void>
3 G+ U9 Y- x: B1 a7 I# B Y struct Type { typedef Normal type; };
$ `6 I, Q5 I1 {% l};; M: w' M6 \& R: U
2 k9 k2 L6 ~/ u' v* D% Dtemplate <>3 ]/ l3 P+ Z" { |7 ^
struct SelectSpecialization<void>. D% s: M" X/ s& X7 i* B
{( p1 y7 F6 O& F d" N
template <class Normal, class Void>
+ ?: o8 L6 O5 D# `# o! P3 {. s/ } struct Type { typedef Void type; };
" u" |: d. E5 Y; ?+ _4 S$ H7 F};7 I: @; y1 M. V( [
8 G* m, z$ S5 i0 \+ m ~( c9 X7 wtemplate <typename T>8 N4 K- S. V' @5 C& d* w
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
8 }) Q* e0 ?7 j/ a( o2 ^) F5 I0 [, d1 t{
: ]3 a/ \3 q' hpublic:
1 W) @( J: l" ]2 [3 r QFuture<T> start()
5 k! f9 r1 z+ h" G {
: a' ~: Z+ Q( Z this->setRunnable(this);
% ]7 ?' B) ~' l this->reportStarted();" v" I3 y* V6 Z2 v5 D* |+ c' v
QFuture<T> future = this->future();
3 y, \/ i8 k7 n. r QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
4 o; T3 P7 v+ u return future;! K: n' A. L [" K* ]
}$ |5 i: O4 W+ q7 I, I
7 L- w- |! Y+ ?; w; z void run() {}( o% u. v1 S! \$ X( R" s
virtual void runFunctor() = 0;
2 h6 n+ g% D. \. ?0 o9 k7 z};/ R) f) F5 ]/ v- M1 B
6 L) y4 l* |8 a7 i8 x6 H: R1 c
template <typename T>" J. E8 G9 y2 s! k
class RunFunctionTask : public RunFunctionTaskBase<T>7 @- B) ^/ i* Z; u t
{ g f/ e, W, [5 J
public:
2 S; A3 s- G4 S% G* ?$ u void run()
- F5 M, J+ z4 P( ^% w$ f {; T- E& v2 j' G/ x4 P1 K
if (this->isCanceled()) {! ?, R+ T0 K n+ o2 F
this->reportFinished();
- g, H. i7 M4 @ return;
. T% U' K" t7 v l9 y }; {9 z7 {+ S) l" F5 M
this->runFunctor();) ^/ T. Q1 G3 Y
this->reportResult(result);
. L# G% F' o3 D this->reportFinished();& o* A% {! ^4 A3 s6 W
}
+ N) K; ]) b }; F8 T T result;0 C$ U; |- E$ B s! l2 o
};
# C# x% v; P& q7 P% @' i8 a1 C
, w0 M0 V8 w: [template <>, t. r2 u2 ~3 N2 J; D C
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
% c# e' {$ k+ K{
( e! u) Y1 }7 }2 d5 z6 y/ Cpublic:7 \* G0 ~$ W" Y6 p, _6 Z6 z Z8 N
void run()
3 n( s D6 f3 e) r- I3 v) m {
+ q2 f5 Y) n9 @0 } if (this->isCanceled()) {
" F$ r; d- Z' I8 o$ O7 [' X. ~! J this->reportFinished();; |* c1 X3 T& \! H& `5 J$ M t
return;
3 Q1 |1 ? S# c }- G7 W' r2 Y2 h7 A* U0 M
this->runFunctor();
/ r q0 R( r- S6 V$ }1 Z this->reportFinished();( y* r2 @! p) E, ~, M! n6 e( D
}2 g. D! ~3 s p Y5 k2 i) [9 Q4 }- G
};
. k% T# C1 F, U. Q3 J# ^+ [; A0 H6 I
} //namespace QtConcurrent; h9 Y$ ?& m+ J; }; {9 p5 U" ^
8 T4 Y* r( B1 {7 m }; A#endif //qdoc
" L( f) }' n! Q1 L/ b" W0 X- L
- m: k3 n* F1 K- }QT_END_NAMESPACE/ v3 K$ m* y$ j
QT_END_HEADER
% t5 r# i0 d- D& j4 r J9 ~; `$ _& ` N. P& ~, p& K0 n! u0 g
#endif // QT_NO_CONCURRENT9 u: H' l; t3 P3 ]% q' l
7 p; I2 o0 F/ m" z#endif
3 G- S2 j8 I6 S7 g% d
& W' X9 ?; P7 B* I5 ^7 P8 V# x |
|