|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: a, b! D+ S) ^: Y. k: Z/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' B) b$ `) v z6 ]3 W# B5 J2 }6 w2 M& |7 d" ~- x$ d
这个头文件内容如下:
7 M& k: k# S% m4 X4 m- c#ifndef QTCONCURRENT_RUNBASE_H3 C/ W% D8 o) _; y
#define QTCONCURRENT_RUNBASE_H9 |# p* Y7 j+ m, n8 g5 N
4 F) ]3 I( p X( H9 H1 q+ m$ L& h
#include <QtCore/qglobal.h>
c* }: Z7 V' p) C* b- M( X# t w' I3 [- d
#ifndef QT_NO_CONCURRENT ~, Z6 ?% d7 W( e2 v1 y+ P
/ a2 p- G2 C4 O#include <QtCore/qfuture.h>9 j0 v& C6 x" O2 s
#include <QtCore/qrunnable.h>! R4 ?! V" k$ ^0 ~& w& t6 X
#include <QtCore/qthreadpool.h>( d' z. Z: {2 v& g9 Z2 P" s
% q3 s$ i3 v, m! F+ l+ E0 mQT_BEGIN_HEADER4 t# j- H6 t0 s- N3 l( r- y; k
QT_BEGIN_NAMESPACE
8 A9 Q" i7 v' E+ Q3 ~0 V; j! B' c3 C+ U2 g3 t
QT_MODULE(Core)
$ m" u. L0 V! e! w0 ]. @
+ l! J; l3 {7 m, x7 F5 l3 j t#ifndef qdoc' u* Y' S9 l/ |8 k* e
" S% F. ]# w) @4 K0 `namespace QtConcurrent {4 s8 m" M# w5 u0 S* M
8 A. g8 Z! L* }' k8 ^7 g, ^template <typename T>) k+ M( b$ r/ n
struct SelectSpecialization
' }; o& `8 t$ W( b4 ?. R4 I{
, e5 N0 u$ x2 z) n% Y template <class Normal, class Void>
* e% S' K0 a5 O$ A8 Q: s7 v0 T! J* H struct Type { typedef Normal type; };+ E' Q& D; u m& D1 v% K
};
, @# d- F3 Z. X/ p8 {0 x- T9 i* a0 g( ^1 a# |: p( d
template <>
& f2 @9 u7 e! i' b& x- h: y: bstruct SelectSpecialization<void>
7 K5 [; i( ?0 v) {6 X' {1 f7 h{
+ C( R- C: ?4 o5 ` template <class Normal, class Void>
% y! C% `# P4 M# {5 L* o, A struct Type { typedef Void type; };
7 q9 H$ ~! A2 B+ d2 u% P};1 a* G C8 J( P
; U1 X/ C& [/ n3 L5 @& Rtemplate <typename T>- E1 s7 K4 ]# s7 Y0 J/ I
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 c7 a/ j$ d$ S0 J2 N l1 V2 s
{+ u& V3 a4 y4 s. N+ D
public:
0 O. i4 K- b# J QFuture<T> start()2 P: n* T3 J4 B# g* ~. Y
{
: T2 I6 W$ e# v! k S% x8 q this->setRunnable(this);
9 ] g6 ]' z4 G/ e/ k this->reportStarted();
" ]/ X' Y4 @% S% y) z# @: K QFuture<T> future = this->future();
- u+ p1 u8 t. Q" |% l ^" M0 a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);4 ~' p% K! P. X; Q/ D
return future;* ^' {, C% e4 \0 A4 c
}, c7 x. V+ Z7 ~. |( k$ Q1 A8 ~
& Q2 E2 e# X3 d! e$ |9 S% H/ s
void run() {}
8 ]5 ?! R: j8 k" I8 Z virtual void runFunctor() = 0;+ b! u) v0 O$ |( w9 @
};. Z7 j, Q+ v- V; M
+ z7 e# z5 b1 K( u$ {
template <typename T> D2 T# F! ]( j. e( e
class RunFunctionTask : public RunFunctionTaskBase<T>
: A* X; t3 [2 j{
4 M( ^4 s8 \ \- g) u, j4 Jpublic:
% M; W5 `6 s0 p- M$ P) b0 ^ void run()2 q" o) Q( K# F, F
{
2 W2 o% c/ R6 a3 ^" m9 f if (this->isCanceled()) {7 ^2 a o3 [$ T$ [
this->reportFinished();! @4 r/ q5 J# g, ^/ H z: W' x
return;1 ?$ K$ n4 J+ O; E4 V$ W9 w
} Y! l. F+ h6 j( s3 j, L T0 D
this->runFunctor();
7 h' m1 t2 v2 e- Q: X, w b" T this->reportResult(result);4 l/ m: ?0 O* ~6 U' `( C% e
this->reportFinished();
! k6 [( W. n3 a0 q7 u }
/ R; ]3 g: z( h T result;. D0 `& {! x- V! y* e
};
* [, j4 i' f1 a1 }+ m& `3 \' f; B3 G3 P, H0 W I: `! j
template <>
% t9 b) v, @3 \+ ?class RunFunctionTask<void> : public RunFunctionTaskBase<void>
! I1 A n* |8 O6 c{
2 C( L+ T9 C! `+ p: f0 Gpublic:' [; m3 c. A4 N
void run()
5 ]$ E# g4 O. p {+ ?0 x4 b; ~1 O! F5 y- W
if (this->isCanceled()) {
+ X* ]) b1 p! ? this->reportFinished();$ z( u; A& H+ V* f+ z- N3 ^+ X. {
return;: }6 z4 b" c4 G, z/ ~! N
}
( i' p, R5 {2 H8 y9 s- s& y this->runFunctor();% \3 v1 O7 Y% H% F# x1 ]5 v. _
this->reportFinished();2 j! a7 g Y2 l! m' c+ \+ L
}# g1 n& u k3 r( p
};
& T7 R3 |3 y- x5 S$ @% t: s2 D7 E! A6 r
} //namespace QtConcurrent
6 C; }/ n" n" f" N8 a
7 s: q1 D2 W7 G$ Y#endif //qdoc# n* T5 I8 f1 Z9 c4 h+ d) c( [
V: ]1 B9 c' f, h/ U9 Z$ q, hQT_END_NAMESPACE
+ F) f5 V% ^; l1 B4 j8 |2 t s, A# Q6 RQT_END_HEADER9 O6 X& ^' {" \; w
, A/ K, V% ~8 S2 }, O+ _: Q
#endif // QT_NO_CONCURRENT
9 V; y, X1 m; b) o. \8 G: p" j7 K- O
#endif
! l* B/ G6 l# P" P) g0 b" k
$ K) h- j" L! T3 C$ y; ^% M5 F |
|