|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
9 S; u# ^# f4 X% i1 q) g/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
5 s5 h$ V) U( e1 f" U/ I! M. i, E4 }# `9 X9 T
这个头文件内容如下:
, B4 S+ h1 z* `$ t8 ?9 i- C#ifndef QTCONCURRENT_RUNBASE_H: c5 d H7 q! d* n6 d$ n
#define QTCONCURRENT_RUNBASE_H0 v$ L" u" v r- E4 a# J
# E( V. M( K2 E7 i) O$ C6 \1 y#include <QtCore/qglobal.h>4 [" k: a! j8 U
: O. g1 @3 v; }; S+ o }6 V#ifndef QT_NO_CONCURRENT! G) z" S) q f; X% ^! }" ~& g
7 \9 q3 t8 o6 J# `) J" t
#include <QtCore/qfuture.h> q7 \8 x* l& O* K6 b. g9 a* V- g
#include <QtCore/qrunnable.h>, d6 E- @5 S+ K% h
#include <QtCore/qthreadpool.h>0 u4 C$ t. [; q v
' v+ r; f* |* ]' `6 G' KQT_BEGIN_HEADER
) n4 n; p0 M: Y+ Y P1 YQT_BEGIN_NAMESPACE t; k6 \) S' l7 ~5 h& `7 e+ ~
7 v6 T1 A+ Q2 N. c4 j7 mQT_MODULE(Core)9 G( A* t% ?) Y$ p
0 F+ v: b4 A6 I, [5 C
#ifndef qdoc
" Q0 H8 g* e( V, N8 g1 r4 [6 h# l; c0 ~! O( s5 D4 J2 o
namespace QtConcurrent {
! \! E) d+ Z$ @: X t5 {. R9 B9 }. b x8 Y* P
template <typename T>
( i( V3 @! S/ [struct SelectSpecialization
2 C+ b# s( z3 o{: O. H; p! s3 ?- t5 i& n
template <class Normal, class Void>! ~+ I$ R8 z+ `8 R$ k. Z
struct Type { typedef Normal type; };
2 K8 e# Q; o8 i; d0 q6 w};
- t/ e v+ ^& r3 k$ `# b/ D2 G- F8 ]5 W$ l. j6 }7 z3 X
template <>$ W& Q: z1 X% o0 F
struct SelectSpecialization<void>9 J4 P" [$ v0 G" \
{
. z& U/ [8 y6 J: [5 i template <class Normal, class Void>- @7 [8 s9 f- k. V0 A
struct Type { typedef Void type; };
) z3 u5 t( s J" c};
/ I. z: v }. `5 R8 d
" a, T% Z9 S' H: C0 |template <typename T>1 t/ Z% e7 ]' K% G( o$ [) g
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. ]. f$ Z! ?2 y4 q3 M, l
{
: z/ o: Y* ` L6 kpublic:
* Q! ^) c7 ^5 F QFuture<T> start()& O$ C% j, i9 @7 Q4 O7 A, m$ c% O
{* m9 r& K: T9 S% \' @% e
this->setRunnable(this);4 Q+ G) o5 y* M: u
this->reportStarted(); o `" W8 w# A5 F$ \
QFuture<T> future = this->future();
/ l7 E1 X+ K5 z' X QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
' J# V, C' o! j return future;
?! C5 E& t3 a }
6 b2 j5 I& T0 H: g% x; b2 `/ {& V% u! i0 q# I
void run() {}$ R1 ?& ]$ n0 M/ B$ w
virtual void runFunctor() = 0;
3 V0 ^8 Q$ u! Z5 M0 A/ F' k};
1 B3 Y- D. v. B; c2 A( p* |. N9 {
template <typename T>2 @4 e8 e) N0 N+ f. ~& L# V
class RunFunctionTask : public RunFunctionTaskBase<T>- o: O/ n+ }! P& J, r
{
! r( i1 A9 X; b/ wpublic:
, l i1 O% G4 a( Y) d void run()3 h# z3 V+ d6 h5 A$ d- y6 \
{
& I. K) Z$ Q. `! w if (this->isCanceled()) {
! h$ N6 ? E; N1 C" i, D, c this->reportFinished();
: t" k6 E& B' Y& `& e# _ return;6 I7 k0 C4 C& M; u! e/ f& J8 h
}$ D K% d1 K3 D9 U
this->runFunctor();6 j4 Q% C. `4 o# v. ?5 A2 m `
this->reportResult(result);- @) ?& M. O) x$ K
this->reportFinished();
6 [1 U8 j7 o( ~- |& D6 [' @ }8 n& O% Q8 V0 w# M
T result;
1 p- ?3 Q$ C" d4 N. s};
' [$ O6 B. c! ^- O: t$ z8 N+ Q# M. ?8 w% q1 W* m
template <>) D9 p) S& m* M' q0 X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>8 z4 a0 h) m! _, `. l
{2 z |3 P" | O1 Z# {5 o
public:
8 Z+ F0 [9 a# u9 l4 N6 b void run()/ [( S, A1 w$ e( I7 t$ e; B
{
$ M4 P3 x! e! x5 D$ X P if (this->isCanceled()) {* }/ L( o3 }+ b
this->reportFinished();: T2 e* B5 ?$ ?1 g5 Z, l
return;
# [0 l* ^, u: \# y. O6 b }, u) f* a7 [* V3 k* {
this->runFunctor();! h- J8 C' w: S; I; p8 g
this->reportFinished();' M4 Z0 Q, Y0 D4 t( J) B6 i
}
) Y' j/ ^9 u4 A5 J};
5 g6 g. n* Z5 J1 {7 D7 ]1 }/ D
1 }0 V% v% N4 y. G3 X} //namespace QtConcurrent
- _! r1 O b! S1 w0 N8 M; h2 y: z; C/ \8 c d; d
#endif //qdoc' ]7 h, y/ _! t7 c8 \4 C& B! B
! r& J3 G% z7 w6 v
QT_END_NAMESPACE
! i9 e7 V9 W+ r% [" D8 @; GQT_END_HEADER
1 N1 Q6 o; `. S: } X4 q7 k3 c
0 }/ b$ c4 q, x: U#endif // QT_NO_CONCURRENT
5 x" Y2 w6 O+ r* }1 I# t# t' _! h
4 S" W) G# K, E. G$ r#endif8 M, i7 b8 |+ M( N" F' K! @
4 l; a1 w3 ~( J7 Y |
|