|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
5 H2 e4 n/ |( a2 h; |/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
! L2 c, |# k5 r$ ~( V. f- c; e$ H- b' v9 W2 i
这个头文件内容如下:) V. ^7 n) k1 q6 ]6 [/ B* g+ }9 A; [
#ifndef QTCONCURRENT_RUNBASE_H/ B5 b1 ^* G: ]" f! H8 Y3 w
#define QTCONCURRENT_RUNBASE_H$ M5 }4 g5 S% e# V% B1 g( j: q
( e0 U6 u& k: @2 a
#include <QtCore/qglobal.h>% X1 _" h7 ^1 B4 T
( }* w6 l; i" k3 k/ U#ifndef QT_NO_CONCURRENT
* D- \2 Y3 F) z8 f! g: n8 O
6 I$ I: ^8 G' `#include <QtCore/qfuture.h>
7 _3 u3 g2 S3 F6 y0 [* b4 T#include <QtCore/qrunnable.h>4 h9 {' C" g7 D$ z# V- i; R
#include <QtCore/qthreadpool.h>6 p1 \0 n( e" s! }% o$ @! w( V0 |
U8 C ]1 k1 w* BQT_BEGIN_HEADER# }. v- Z4 }: X, X9 q9 f7 R% Q
QT_BEGIN_NAMESPACE" a* k! m/ t* T
" f) F; \8 N- F* w
QT_MODULE(Core)# ^- e" ]! `! a4 l
' j W$ L9 t, x2 y0 u
#ifndef qdoc
5 B# x: w7 M& _: p7 d* Y) H/ G: V9 q; c1 k, |0 M! ]/ x6 p
namespace QtConcurrent {8 ?( g% e# h) ~' j: ?+ x" y5 l' r. O. ?
, l8 r% c$ v) i% I2 A
template <typename T>. E! I e2 S9 z4 }) u) z
struct SelectSpecialization, P3 e* K0 N, i8 s% q" H8 R+ I5 O
{. I# w _( v+ ]3 `8 k0 D
template <class Normal, class Void>" D0 D' H1 C8 |
struct Type { typedef Normal type; };
7 [" G: s( u6 D: Q};
, {3 n- |/ k; o' f+ j" y# W+ r$ t9 B& R6 s" o( E' K
template <>! ^' b3 P7 y1 [, A: u, A
struct SelectSpecialization<void>, L e7 `9 t1 |" O* Q8 R& j2 V9 }' [
{3 i+ J/ j0 ~) u2 x- g. P
template <class Normal, class Void>( \, I$ J- {8 w. s
struct Type { typedef Void type; };. B+ I5 R1 R1 A! G- Z6 Z3 L
};' P9 W5 E6 O2 r# o, \9 N) `
- x* R8 }4 y' i1 h6 X g
template <typename T>
# Z9 p' N/ v8 d. t6 Rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
; z' Q& G9 y4 U4 t1 y& {7 _% i{2 g M n* R/ S# X% D# i# Q* Z _
public:
Q8 k( J+ B* Y# Y0 s7 U QFuture<T> start()
3 p4 V5 o2 E+ w9 g {& f8 X' k6 A. h3 n# d
this->setRunnable(this);
{2 N; q: x0 X1 r this->reportStarted();
: ~" U. w/ } a7 D! s QFuture<T> future = this->future();" b! f6 b, t) j3 `
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);7 M5 B+ D! ?# E4 P% M4 A
return future;" ]: [( R6 L- W
}
d( u+ W# }' I
; m; v4 m: J1 x% O& F+ N3 ], ^ void run() {}6 r' M7 D/ p: c7 D* L, G- }
virtual void runFunctor() = 0;3 I( g" M s' p
};
7 V! u3 y, ^# ]8 q1 Q
% Y" ?1 f& B' V5 c6 ~7 M& T7 ptemplate <typename T>
$ |" n2 L; s2 \+ ?class RunFunctionTask : public RunFunctionTaskBase<T>
3 Q: I. s; y, l& i{9 [5 v: X7 N6 _3 C6 |) ~
public:5 t8 u X, m" \! \* ~: q; u1 ^
void run()
2 h8 x: @: \6 u+ L {1 Y5 \3 Y7 c" R3 \8 d9 U- s& p
if (this->isCanceled()) {' ?& u2 O) y) D) V# i' }7 Y' o
this->reportFinished();8 ~1 P3 t1 j: ]2 q% a# l* ]
return;8 g! N u8 S5 i7 v6 _
}
/ f. U. f7 E2 r4 M, @ this->runFunctor();
2 M; u0 \! J+ L* ^+ ~( \ this->reportResult(result);% _4 s0 E2 `; e3 @/ P) R, [
this->reportFinished();
6 V3 ^( ~4 [7 Y! x! j }, I1 ^) Z; \1 Q' G/ o
T result;& u5 D3 A: h% a) E% q' o" |# o% m
};
; y m& A7 O9 Y0 n3 J! e% m8 ]* f- V* ~3 q) m9 i, u7 k$ P
template <>
; ?0 d [& @8 m3 F* @; s6 rclass RunFunctionTask<void> : public RunFunctionTaskBase<void> ~4 G5 a7 O% m4 d. J8 l0 }
{
2 I1 v1 S& w. R" O4 Xpublic:# Y& w* q0 J. J: Z3 R" k5 T
void run()& X7 I) [7 E& w
{
8 A, E5 I% n7 x9 x& O if (this->isCanceled()) {
6 N+ [" F3 ^: H6 W8 x: B this->reportFinished();
: v. r" Y& W/ E$ C2 ^/ \ return;
/ D1 L, v( ^/ n3 Q }/ Y1 q' P, s# x& j
this->runFunctor();
. \! Z! x) |9 _* p6 a) a this->reportFinished();) e; j! {, C4 ~& \$ n- l
}" o# i; b5 s, `4 L
};
7 ~, [- @# V' w2 D* f, H
* A+ O r" T0 y5 K} //namespace QtConcurrent
% F2 d- _% O8 I/ j! A0 U; k6 k4 z1 g: l# \) \, a& e
#endif //qdoc( a0 q8 H+ S6 M
+ U5 m7 L8 g. d; k2 m/ }5 p' c6 v
QT_END_NAMESPACE# ~ X9 f* K% V3 b( a* n& }
QT_END_HEADER/ O4 y7 G% l! F3 N6 i6 c1 z, \+ ^
4 |6 P1 l- b+ v7 U* [& u/ V, ^
#endif // QT_NO_CONCURRENT
) D3 i/ l7 K* ?9 d7 l7 i8 P8 [- Y/ ~0 w9 l3 P+ q" `
#endif* k2 I; {! `* I' q/ W
! |& b8 m2 V4 `+ z |
|