|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% I5 E- H [# v, O% o; K% j
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ |* F: y X" m7 O: {" g5 V5 }
+ E% b5 u+ z. u% r, N+ I$ x( S5 r这个头文件内容如下:+ y2 [ V7 b( K# \, |% r% T
#ifndef QTCONCURRENT_RUNBASE_H
* i+ o: d+ d9 A6 w& H* F#define QTCONCURRENT_RUNBASE_H1 u, \# L, J( ]* Y; s
' f* X [, C) y. |6 [* S. Z$ I#include <QtCore/qglobal.h>- V- h0 n7 N7 X) l" t1 D; G
$ F& b4 S/ j- M
#ifndef QT_NO_CONCURRENT; n+ l( v( }& ` Z0 T; Y
+ t1 }: E+ G- n+ u. t0 B% f) b
#include <QtCore/qfuture.h>
# s+ v Y3 P0 R& L7 r7 n#include <QtCore/qrunnable.h>
1 f' `7 `8 b6 u% [0 `8 z# e0 ~+ M#include <QtCore/qthreadpool.h>+ |9 @9 V1 W9 p0 _3 Y6 h2 y
! }% `# x& N0 G# Z3 |
QT_BEGIN_HEADER# K7 M0 n. P( c1 q* O7 p4 C7 S
QT_BEGIN_NAMESPACE; Z f$ O1 a+ t$ K8 e; \
9 a- H0 ]* p+ Q2 G2 o fQT_MODULE(Core)
& d- }; W* N! N! i0 ^ [* ^5 ~4 p5 I: O/ N0 r# W
#ifndef qdoc
0 X9 V7 w! z: W* f' Y, @. ~- W5 E* [: J
namespace QtConcurrent {
5 b# }8 ?7 H- Y! b8 H
! V9 l8 e; |3 ytemplate <typename T>
% B7 n9 C x3 \struct SelectSpecialization
$ H7 B6 M( Q- G{
7 z; Y4 G2 y L0 t template <class Normal, class Void>1 P" a1 N9 Z" q6 J
struct Type { typedef Normal type; };$ B- @8 ~9 t& }
};& q' F* q6 i7 L" u `# A, B
1 c* g0 g7 [3 q
template <>% W& n( D/ u# m4 D0 i# _% D
struct SelectSpecialization<void>
* D# k/ o6 O- I4 _% D# a- B{
) ]' d& l8 |9 @& \: g& d( U template <class Normal, class Void>
* j7 ^; l5 v. b+ p# L" l$ O& Y' v) } struct Type { typedef Void type; };4 [% W4 c6 N/ S; _8 T6 z
};
3 e. Z7 V9 _3 v6 z
, O; w6 ?) d* Q) T. Stemplate <typename T>
1 _/ R9 q2 m8 x. i2 Eclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. K, E+ G/ N. t
{" n3 W/ m7 X) y% g- c3 B4 W
public:
: k) X- e9 g( A! a8 \ QFuture<T> start()
0 i4 p0 r, z! X; i {7 H4 C" k' N2 j+ z+ o
this->setRunnable(this);
! ]7 M9 y' E9 v4 l, ` this->reportStarted();8 D1 e! t9 @* r7 f
QFuture<T> future = this->future(); r' t \( t7 z% p, g( D
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
! N2 o, o1 Y! @) T; p9 M4 o) F8 D7 o w return future;
2 r3 e$ ~% M4 J- b$ u8 ^# U }0 S( F8 L/ S& |; |7 b6 N3 q
f+ b; R6 _; y' X5 [. T
void run() {}7 `" ~$ X. @- J9 x5 y
virtual void runFunctor() = 0;, M. k+ a7 N- H( B& z6 {0 t: S
};
- Q3 L) o2 I- t7 P, E& |
6 o0 y, ]$ u1 `3 A/ ]! }* Etemplate <typename T>
' q: p/ u' m' K8 p( zclass RunFunctionTask : public RunFunctionTaskBase<T>$ L8 P& T- }) u
{# Y% m8 o( \4 x0 a8 K9 [0 U" x) O1 b$ S
public:8 N7 `% ]5 A* x `
void run()
% [* x3 G$ V0 J- S {
/ e# x! T1 v9 @ if (this->isCanceled()) {
) U, h2 {% B0 ]% Z; |5 F this->reportFinished();
% I) M% b$ d% B return;
0 N; K+ t# _5 u1 U }) k4 | ~8 S7 l) f
this->runFunctor();
- r: ` X# }! M- j this->reportResult(result);
+ j) [3 M. O( t3 ] this->reportFinished();
' U& H! Z5 g/ C }1 \! D0 N; \$ B8 t% @- ]& r( S/ V
T result;$ |: C) a1 G; E9 q$ h4 E: V
};; ~! X8 G/ X3 H, Z2 i# y
2 _0 a3 p4 G% E" y! {! I
template <>& w! l1 w' x; Y: o0 y- }" N
class RunFunctionTask<void> : public RunFunctionTaskBase<void>" l. [" D7 \; p5 Q2 S
{: x1 I1 y, Z8 n' g% h/ c
public:
6 u2 B! Z9 G `. S+ {' t# X void run()
5 o' Z4 i' f" \ {7 i8 J w9 I9 O
if (this->isCanceled()) {! _- Q- f1 \) _; d; p
this->reportFinished();
. l* l8 ^0 D# P' [& {1 h. ^3 x- } return;
' {5 i% v' D3 t' M: z% K& o }" y0 g. i) x# E2 O3 m7 R. i, b
this->runFunctor();& L: p" J' N# E8 k
this->reportFinished();$ W3 k0 o' C, d" ?
}" E- o8 @5 C' [2 E1 m' u
};, z3 ], Y' l! k3 M `0 S* e
5 |, o$ ~4 U2 I# Z1 |
} //namespace QtConcurrent
) N/ v2 U7 O1 _0 a7 Y3 G$ g$ \. p9 t% j2 m% h
#endif //qdoc6 p4 Z# H. S& ?
9 v: m. i, |5 l+ q) C$ m. f
QT_END_NAMESPACE5 z+ }8 E) H# v6 a( _
QT_END_HEADER
9 \; I! m z% s$ g. |* D- K. h8 ~- Y# r% p
#endif // QT_NO_CONCURRENT: [3 I0 ], t+ i2 h5 }; D
4 E0 Q ~( a. D- q2 ~% y
#endif4 }0 O p& G K# d! Y
9 y: G* ^; b6 b% [; T$ b
|
|