|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
1 f/ U) T. y( B" Y3 l+ B# g/ e/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ a! [2 u' r& ]# K* H8 Y. r& u+ y. B' U
这个头文件内容如下:* [/ w, l+ U0 m' t0 h# j: L" y V8 _
#ifndef QTCONCURRENT_RUNBASE_H/ |$ H' w: K! Q& I) H
#define QTCONCURRENT_RUNBASE_H
/ z: z0 O# w1 W, R4 k+ l2 _0 g: C, g, m
#include <QtCore/qglobal.h>6 g- g, w2 f' ~
/ F4 `' |" x6 C: ~#ifndef QT_NO_CONCURRENT, W, l# o* _% W3 j a0 M9 r8 w3 y
/ u. p& d9 _- ?- C! m
#include <QtCore/qfuture.h>
) M4 p$ _. U' H#include <QtCore/qrunnable.h>: M! e: R7 O" Z& i
#include <QtCore/qthreadpool.h>
8 D: C# F* F8 A% c' ~0 I' k- X6 p9 `$ j3 k
QT_BEGIN_HEADER
/ ?- [( c H* `9 G, t, e& LQT_BEGIN_NAMESPACE
' P# ]' w4 O0 @' e9 V& i- ~/ C. \9 }* Z& ?+ K/ L
QT_MODULE(Core)5 Y& Y3 R6 S6 z- Y7 s2 ^# }/ Y& L# C
3 ?4 T5 A) L" M% J
#ifndef qdoc
4 q3 l( L: ?$ Z2 T- j3 ]* W* |5 _6 q6 e
namespace QtConcurrent {6 D4 m3 }5 q- s. U, o; b |8 @
% g4 P& }4 b q4 |9 U
template <typename T>; \1 P5 D( ^) {* f/ h
struct SelectSpecialization
! {9 B' B/ L6 N: |& F{
( u, k% p% t# m" I. l6 G( Z2 I template <class Normal, class Void>
, ], F* G) i( P struct Type { typedef Normal type; };
6 y8 s; l7 s' Z* z0 | G% c K};
, e. f( |: u/ o& t
3 J4 j6 G4 Z6 l0 [" n- y0 rtemplate <>1 d0 E" d4 w5 x! U6 q p7 g0 U
struct SelectSpecialization<void>
5 m$ Q! n# @+ U. C( z{/ F6 F& q2 @' F( j+ s5 j9 ]
template <class Normal, class Void>
, p @) Y* d$ K struct Type { typedef Void type; };) \$ \0 c8 W" t' w9 n. h
};
# A: |$ `0 E( \. j) S1 c8 l
" Y- ~( s4 I) i' G9 i: H8 E) [0 Ztemplate <typename T>! i0 W4 q3 v a3 t8 G
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable0 z. J# ^9 Z9 P/ S
{, X$ a& Q* n( W- Q
public:1 V! v3 j7 p/ ?2 x& x
QFuture<T> start()
; [9 H9 Q) q0 J2 A! r' D+ [ {
) R: O- I1 Z O this->setRunnable(this);
' I" X. G% z. ~6 Y" z. t' N this->reportStarted();
. ?/ f* S& a' B: r O; ~% J/ l7 k QFuture<T> future = this->future();
% m) C3 V; {0 n4 O4 e: R QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
0 K! e* J) o. B4 h; q- q. t+ | return future;& Z; Q- {$ l& }% _
}
: E7 o0 ^1 r I) f& X, V; H; v5 S5 T. \! U
% t5 N. t2 N$ x5 _* i( ? void run() {}
# P- E& L; T, K( R% L; O2 s# }4 V; X virtual void runFunctor() = 0;( C* o: C' S- M$ {6 w- z% ?
};
5 w0 e7 |6 {( D+ k' l6 r2 a( E% V
4 a3 s5 z% A" J& Jtemplate <typename T>0 q' E8 F: [* @% j- \6 C5 [3 Q2 D
class RunFunctionTask : public RunFunctionTaskBase<T>
2 S' l* I1 H" Z& C' V# ^7 i{0 W9 r4 ^: A. s. G
public:
1 Q% s* J; h2 C# Y/ ~" i void run()
+ ?. L5 ~- x9 ?) M/ x- w+ l& p {
+ \( |3 {, @2 v/ c" T- { if (this->isCanceled()) { ]0 j- V0 P. C. Z# B
this->reportFinished();
N: s0 ^$ A$ f) D0 r i8 z return;
- L* C7 u3 E% Z ^4 R7 d }3 l- G) [/ ^6 d9 S
this->runFunctor();& g ]8 x4 T# g- f3 Q" O. [+ A9 X
this->reportResult(result);- ^+ ^8 ~( H& C* T! l1 Y( u
this->reportFinished();
+ f8 J' ^# o4 G$ u0 E, {1 B }2 G( H$ S! s7 k) f& G* V+ F
T result;
3 j7 p2 G9 ^8 |( ]- k& i2 `};( G* ?; y. M" ~% @2 [" a/ O
2 F" Q* i$ f* r% C3 b
template <>. C+ ?; J+ P+ N4 s. ^, I
class RunFunctionTask<void> : public RunFunctionTaskBase<void>6 A5 {1 ?+ x3 M3 D6 g% r3 v6 W( X
{- V, C' j) a# n6 l) `) F! [
public:
$ K0 r5 ]% O/ x void run(); R) V; a6 Y. D: d4 P7 y1 F2 y" b
{, U2 S9 [, Z- K' Q* C
if (this->isCanceled()) {# N' A4 [$ p% t5 S
this->reportFinished();5 m0 |, t% [' z" @' h
return;, ~; P4 B* p* ?
}
# p" u1 _! k$ K- H- e this->runFunctor();
0 G7 v: |' E: H this->reportFinished();
, R: I9 x0 I" a: t }" ]6 ~' h/ a3 a8 o ?! e
};
A5 [( u: P' w& z% [$ t) I
+ O$ J' R; L. q9 h7 ~ Y} //namespace QtConcurrent
* U9 N1 z" O9 f. d
, K8 A# K! b' A5 g% h" E, {#endif //qdoc
5 G7 ` `4 t, c$ F7 ?
! k1 _ d4 L* |9 i& D2 {2 \QT_END_NAMESPACE
3 ?& s: Z$ Z+ Z" U+ ?QT_END_HEADER
8 T3 Q! t r7 p8 z: ?
. O3 D) i6 N( K/ ]% }#endif // QT_NO_CONCURRENT; f0 ?8 D" W: Y: o
4 {4 |- ~9 s' ^5 r0 h& |+ I. }#endif% K* s6 V9 \2 P* O. j" f d9 [' j
! _4 p! C; l {' K* U |
|