|
|
我对syslink进行交叉编译到arm,但是出现如下错误:# l2 M3 {3 y* N+ w( O& ]( \
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& U7 x& g4 `* l! z o! [) A; G
这个头文件内容如下:% ~0 Q9 i: m/ B% E# m5 n- T
#ifndef QTCONCURRENT_RUNBASE_H- {% o# i5 e( W6 d: V- R8 |1 v
#define QTCONCURRENT_RUNBASE_H4 \$ e7 P& u. y n0 s
9 O3 ^4 W0 t: k6 K$ ?; L#include <QtCore/qglobal.h>9 r+ t0 z: z- V8 R" \
, F( h/ _5 k3 x1 U
#ifndef QT_NO_CONCURRENT6 W: r2 O" D c4 E. w
8 T% b8 L t* x$ V5 m4 x4 O
#include <QtCore/qfuture.h>$ B& K5 c+ g' T5 ~& O; U
#include <QtCore/qrunnable.h>
6 N4 V$ m% _/ x. m# y#include <QtCore/qthreadpool.h>
+ e" j0 `: f7 \- E, o
$ x# e+ m6 l; a2 M9 P4 PQT_BEGIN_HEADER
% H+ s7 ?+ k0 b" U& P* i# \QT_BEGIN_NAMESPACE
" K2 Y6 M+ i9 ~" |: G2 p
, I, ?1 n/ r+ ?- g. kQT_MODULE(Core), L( z& L6 _6 d, d( e
& k4 Z/ o, H# Y% B* L#ifndef qdoc
* _* p5 m+ @) ]7 t8 Y8 y6 M7 x2 F8 P
namespace QtConcurrent {* A9 }5 J# Y/ @% Z
6 B, D9 c; c* d9 s; f7 r
template <typename T>
x3 a* S5 h8 a2 s5 u' ]struct SelectSpecialization) ]8 C& P8 b1 \; q5 ~- |
{. @& f r! }$ \$ h: k7 V% `) {. u
template <class Normal, class Void>+ y1 S# R9 B* Y3 m
struct Type { typedef Normal type; };+ I# ^# c' r6 n# b- e+ Z: h- i
};. L. B6 u% p2 i$ p: a2 f# K
7 A0 I; v, X: m( ?template <>
) o4 [2 G( k+ b2 l! J' s* Estruct SelectSpecialization<void>8 ?7 j8 J# j1 s) p: U9 t
{
* k" ^: {, I$ D5 C9 F& l template <class Normal, class Void>
9 R1 Y! Z7 x# U0 v0 q) Q struct Type { typedef Void type; };
# q( n( Y( n4 y, b3 a};
: y, T! g& l" ^4 C) J
. A/ B) r- F n8 ltemplate <typename T>
7 S0 P! P3 ?" n7 ~0 C- Vclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable2 T' J( G' n- I+ L T! [2 U5 S
{5 B8 `5 \. U& y
public:
9 ^' a( _( x& Z4 K QFuture<T> start(). V f8 ~; }* u+ `
{
$ h7 t. E( j' y! w4 n s) _# l this->setRunnable(this);
/ E: R# ~! B6 @1 Q1 d, V9 i2 @ this->reportStarted();
+ T8 n2 O# F( I1 _ E: R QFuture<T> future = this->future();0 |! z+ F2 T2 m* k
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. E, W8 [) A/ [- t; z% l
return future;
* w. P0 \0 r% k L6 C& c6 I$ D- a }: t6 D; A0 d* R9 h7 b G; _
& \/ ]& M% C" L# m2 M7 S void run() {}
, R9 N* D+ s5 L virtual void runFunctor() = 0;, Q' `9 d! t8 ~, b8 c
};# I4 r) ~9 _: J, L3 O4 S
- M- ]* t5 o; `+ y0 M3 utemplate <typename T>* I c! L" l7 l, ^. [
class RunFunctionTask : public RunFunctionTaskBase<T>
9 _/ D3 y4 o& U# J \4 g+ f{
8 R( r! {7 r: dpublic:/ m; u$ q g! K& t0 S
void run()$ s6 {& j2 o5 _: [, j& l
{, y5 C( Z% u" z: b8 P9 J8 M" `
if (this->isCanceled()) {, k) |7 H h9 ~9 t+ o
this->reportFinished();
- Y- L! b, X/ K% d; S% o6 z return;1 |3 Z* _3 @3 ]" y0 P, t
}- M& K& U) N v
this->runFunctor();* U; L; f0 K& w4 W
this->reportResult(result);
' H' L; i; z7 [; P" P5 T this->reportFinished();
+ r) X, K7 Q4 i8 J }% r }
0 S; n0 O" u; \( V! X6 h$ e T result;: B- l% A9 V5 [# t/ ]7 t
};/ j! E" o1 Q: d
3 \0 |$ S% y/ }) X- o) Ztemplate <>
# |$ B' F5 k; X4 ^7 u" Cclass RunFunctionTask<void> : public RunFunctionTaskBase<void># l, h# d; v" Q3 Z0 o& z0 K2 U, b
{" p( @% {: d6 c+ _* O( L
public:1 u. l3 e4 X1 Q5 N
void run()* F, ~! {" L' f5 p6 M7 z
{
' S) U9 i. q, S6 r3 I0 X1 O if (this->isCanceled()) {
9 T5 I: ^7 |. G0 y( ]2 F7 w this->reportFinished();$ Z: f/ g, i; l+ m( ?
return;
9 U7 N( `! g5 V- c; v8 O } V2 i; u( K( t0 u7 @# @; i
this->runFunctor();
) l, d. b# O1 W8 q# C this->reportFinished();
0 j- Q% w8 ~% ?; l }' ~# p, c* g, y9 B4 F4 A( k" d9 c
};) x @% Q& C3 _( b% C, x3 r; F
' }! g) I0 W' D: k} //namespace QtConcurrent
' @2 E5 r4 C; v+ v( h4 L7 @0 \. |. Y3 P* ~ O
#endif //qdoc: M2 V' E1 c" v$ ?6 V
6 z+ H6 j7 N, h( C9 R% d* [. EQT_END_NAMESPACE
% A" Q, |" {0 ^- i$ y J* UQT_END_HEADER8 Z/ R% I$ r9 F& ]! M
* |+ ^2 z' j' {& `/ O
#endif // QT_NO_CONCURRENT
0 ]0 Y: J6 }: k; @& R2 j }4 F- o6 @ t( }/ O# q
#endif4 r. ^$ B# }' h S) A
$ w3 U" r% _& I. |3 H" t0 E: J: G |
|