|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! n) q3 L f: K% x- 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'
/ w& H& ]+ q8 i+ t( ]# f H% X; P/ l
这个头文件内容如下:
- O. d4 O" |$ y: l' D#ifndef QTCONCURRENT_RUNBASE_H; ]: l/ ~1 ?. H2 Z* C3 {6 b
#define QTCONCURRENT_RUNBASE_H: K" Q9 t; c6 z) H4 K. f1 h
& D8 ^1 H3 P+ R6 n( X+ U0 ~8 O& ?7 I
#include <QtCore/qglobal.h>. ?/ w: U/ Z' A7 Y
( q. r( d' @5 m7 ~5 T#ifndef QT_NO_CONCURRENT1 c) y0 E- p, @0 l
6 C/ X0 Q8 C' m& W# Y# Y+ C6 P#include <QtCore/qfuture.h>& V' }: f' e7 _' K
#include <QtCore/qrunnable.h>
( V9 ?' p) p! A8 T#include <QtCore/qthreadpool.h>
# h8 v; m/ m5 p5 J/ J
. ~" z( ]+ V( F# NQT_BEGIN_HEADER
9 p; L4 s) i0 j0 v4 F& pQT_BEGIN_NAMESPACE& g2 ] p9 I; z3 u+ q
# b( T8 c: m i# B; a% i
QT_MODULE(Core)7 P6 X) S, z/ j5 ^$ I5 F3 g
' C, o/ S* [" H- N k: M1 X( X- r
#ifndef qdoc
. ~2 {! A. M" }0 P! N6 F E: Q; v" {. c
namespace QtConcurrent {+ t2 f6 e* h: K
( G; o$ M$ d3 o% k# [1 t
template <typename T>
* D% e5 \$ f7 R( Kstruct SelectSpecialization
: n ^( ~7 R( f0 P% x{
/ m% j4 g \* q" A5 L% _" _) J template <class Normal, class Void>% o/ h: f, S1 W) o
struct Type { typedef Normal type; };* f5 v! |7 I$ [. q
};
2 p& l5 Q5 J1 N+ S+ ]* a2 j: i: [" N8 h6 [' e
template <>3 C" }7 ^7 g$ V& p6 ~
struct SelectSpecialization<void>" `" M2 J! i! R) h- ] K/ @) f3 k
{6 _: P( J1 I+ N$ V8 a
template <class Normal, class Void>
& r X6 j9 j) I* H struct Type { typedef Void type; };
! A- z. ]) Z a* U};
8 D- c' S2 ?7 ?1 i* N8 B
+ E) k3 w$ L& l( E( X" H! mtemplate <typename T>) `' \3 b" _$ @) h. }5 d9 D) o, K2 h
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! X) {* j) H& f6 c% C{. R$ z4 r3 P0 Y o4 S+ m* V, K
public:: O1 u8 A- C0 ]( Z i0 t0 e$ Z
QFuture<T> start()
: X& s' }1 L1 t& H- y {
+ v& a+ g1 E8 l$ w6 b; {) A/ e this->setRunnable(this);
! L# F1 R3 L; X" N# j( C& @+ h- a' E. e this->reportStarted();
( D" v: z$ q) B [- V* { QFuture<T> future = this->future();
( A! Z7 E5 l! n. { m! E QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; U( U- W$ @. _# H5 V
return future;
0 f" g# f3 j4 m }
+ r1 b8 Q& ]+ l4 ~5 q [" E& D: r2 C/ R% t* w# q; V1 p3 G3 ~
void run() {}
* k: q- p& U1 R9 l( `* E9 h5 p virtual void runFunctor() = 0;
* U' E; a" E8 v: B! w( H};1 t X' q# Y! N! B* G( ]8 c
3 s# r y3 N) @( r8 |
template <typename T>
t, v) H0 H$ m; N/ Oclass RunFunctionTask : public RunFunctionTaskBase<T>* `* c& v# u+ G/ M- I" {! C
{# J$ h" f( \$ R- l8 R- b( {9 E) Y8 a5 G
public:/ s- C* o4 }# R
void run()
& x# @2 Y9 U! v6 H3 h4 F/ _- y% G {
7 x$ n! N( Z$ x$ v if (this->isCanceled()) {
$ W9 d4 B5 M% ~# Q+ E' }, ] this->reportFinished();, D7 d; s! u+ _: _( F
return;" i& w& a. e) E! T
}0 n" F+ {! i7 E5 y
this->runFunctor();1 Z! X$ }0 W$ {( X' [2 Y: ~
this->reportResult(result);
9 ?" F1 k C: Q( X( j3 ] this->reportFinished();
) z4 H0 `9 @: n# y+ h) ` } R5 i+ Q4 J7 {% l) _) U
T result;
/ j& a9 g, s8 K};
% U' P) o$ j$ X. y6 S
9 D F+ ]+ q Y9 @2 ctemplate <>
, h. N% I4 g6 M2 `1 Bclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
3 h/ W7 }- @( E5 d{6 D. E2 d4 H% L2 z+ L/ W, q
public:
/ {% n: C- m7 h* ^- j void run()
8 e& k3 ]6 V/ r+ Z {
1 u) A. O7 N3 W2 {( c, O if (this->isCanceled()) {
& w% S4 p7 Y9 I; T this->reportFinished();
" U5 c) I4 F' ?3 t return;
# R- B* h7 Q5 {! b! e p }
) K4 n. ~. T$ V! H3 `& H8 O this->runFunctor();
# z, f) M9 k! U this->reportFinished();
' P0 P3 j- W0 z/ ]; w" s. O6 M }; l4 O7 }' G7 S! w; g& ^
};
# H$ p+ c' t: \, ^5 E. s5 m: P/ G' l* W/ z- x
} //namespace QtConcurrent) r% A0 r2 X$ o1 `! d, S
* n) U( S: G& U( r# X4 Z0 d#endif //qdoc
6 b9 g- X9 e/ Y: Q' f# @' _: f
/ M! h# e% Q: m8 i" K, cQT_END_NAMESPACE
1 j; Z; h4 G; Y) D( iQT_END_HEADER
. q3 w" U1 R) C% M0 P
) Y" E- E# I% G2 Z#endif // QT_NO_CONCURRENT
x1 r! h( V5 ` i4 L; e
3 G. E5 t! j8 P3 i/ s s: P#endif9 }* z* Y/ r( X# w+ I5 [4 b: z' l
8 C9 P, E6 ]% @+ r' w |
|