|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" ~, n+ S9 Z: H6 n6 f5 [/ ~: F
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
; t0 t" \1 |. u) H
+ B; M3 w: Z/ j2 F: Y; M这个头文件内容如下:: u) @4 w1 H8 N$ H T$ r# U
#ifndef QTCONCURRENT_RUNBASE_H1 o) o! u$ U' }. A+ f( h4 {% h
#define QTCONCURRENT_RUNBASE_H
; Z; S- Y3 C+ E- U$ f" Z0 |6 g9 A" ?! R+ Z0 q1 o
#include <QtCore/qglobal.h>
8 l) ?1 b. k& @' f- q. n1 t6 H) j7 R, \! W
#ifndef QT_NO_CONCURRENT
% F8 c( v1 ~! ~( [9 D; E
" ]- E8 R, ~, ]/ R" v. \" q#include <QtCore/qfuture.h>
% f# u+ T# @7 @' s4 |#include <QtCore/qrunnable.h>
( z p& Y' F5 b# t#include <QtCore/qthreadpool.h>
1 |- [/ R4 p1 g1 ?. R) }3 \. p+ {" b/ A- c9 t- w" C
QT_BEGIN_HEADER
- e% _1 J$ k" A: |$ j3 r E9 }QT_BEGIN_NAMESPACE7 v$ s6 x* O2 `1 R
5 x! ?% T1 }: l' a: aQT_MODULE(Core)
9 F0 U" ~$ z4 M! g1 M
1 x4 o: Q `2 s#ifndef qdoc; p- f; `0 T# V* z$ ~2 I
5 _1 N7 _, c8 K
namespace QtConcurrent {* z( [* x# n( C% d
% C% K6 h3 i7 I/ ~/ Ttemplate <typename T>
- @8 v* C( S, k% {4 j7 f% Gstruct SelectSpecialization7 E/ C- @# x s/ v3 A
{, b0 @; E& p( S3 N
template <class Normal, class Void>4 ]+ Y$ J3 G- c/ H/ k" q t+ G1 c+ O
struct Type { typedef Normal type; };
0 L2 Y4 _. v0 Q};# d- I7 _8 _( x( v) K
4 a* h- X/ b& D" b. ]5 a7 C' a
template <>2 R4 z, p% z0 K; x) O
struct SelectSpecialization<void>$ e& `" E1 J6 F/ l" H
{. |1 u, w: n) ^1 |$ D) G. f: k
template <class Normal, class Void>
" R) F4 q0 n2 } struct Type { typedef Void type; };* G, m' ^% g2 O
};7 c9 L/ p% r6 j$ G
3 y2 u+ q5 e3 K3 s; w7 [# Y+ v
template <typename T>
! G' {# h: p5 G+ S. Hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) }& d' d6 J! r: L{
- p! \- B4 N: A% Y# O0 h8 Jpublic:
. L! K( C6 r5 }8 N- h QFuture<T> start()
1 d' |8 Q" o& c9 [, p5 ~4 _ {
E9 }0 b! g, t+ z this->setRunnable(this);* F6 {. m* C6 |* y) \* v9 \
this->reportStarted();
8 [% F& b; l: I+ @5 a" N! {" v" _ QFuture<T> future = this->future();: F2 ?+ M& W4 L# G0 u9 g2 W+ d
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. Q& n! M& h D" @' Z
return future;
[4 S: [7 T" G7 M T }
4 u1 g+ {& _. B+ i- j) z2 q; F5 Z- e6 x; o* \! k
void run() {}3 j! L; W( {+ T! Y
virtual void runFunctor() = 0;
2 l/ g' _7 H- X};: G. B' O; [5 a' U% G
, O& b4 e" a' O' g( ptemplate <typename T>: p" A5 V9 e; F: `* a1 M
class RunFunctionTask : public RunFunctionTaskBase<T>. c; M' @* H. \6 m! r
{
3 |* i" A- { ^1 J" ]! F/ @public:, u m% ~: O+ ]) Y
void run()
7 n" @7 j6 t3 z- k {$ I2 X i3 W+ }3 |
if (this->isCanceled()) {" v; t; O2 o+ w1 |" t) G7 \$ K* k
this->reportFinished();
* O1 x f1 C; F( }4 k* D) P return;
0 u4 u3 H3 c k) d3 A7 ? }. f- ^4 q- C; G; U4 q- F- T1 |
this->runFunctor();& V& G7 s: {! J. m! r2 L
this->reportResult(result);
, l: w) T& J$ k' i) ~7 E8 z this->reportFinished();; \0 X) [) ]7 a( P* r2 } p/ T
}, p) i+ y4 R: {2 g
T result;8 y5 q9 I) P# K
};. D; k P5 Y2 z# V' t7 W
1 s* d4 f% g$ @8 ^3 }( n0 X
template <>* Y7 b T1 r S; i9 r6 R
class RunFunctionTask<void> : public RunFunctionTaskBase<void>- N( p8 j/ H- \( _* o
{
E7 K; y" B6 p1 z5 p! Rpublic:
% o& j W- J- _- i2 p" D5 ] void run()
1 v e% t) X) e( h6 { {- T& f1 H8 X1 B5 F* w. E" M3 m
if (this->isCanceled()) {
4 o/ y6 v9 U4 E this->reportFinished();
) B: h; {6 p( `1 ]7 e+ j6 ] return;
6 p. J2 w" n# w b T/ | }
/ Q y. m. g9 U/ N. }$ ] this->runFunctor();" Q+ l( I5 l/ r% N
this->reportFinished();: X) j: I) ^: n4 O" R' P6 p
}
& r4 Q5 |9 Y- s. d+ b1 [7 J};
4 o- Z$ O4 k( o6 [8 y
* F( t2 E, m6 `0 l} //namespace QtConcurrent
* Y# C" m* Y" {. L( F, ~( l# M8 w. T0 K
#endif //qdoc
& `) s- d- N" M1 t: G1 f9 }4 s2 q; p! f5 d" N
QT_END_NAMESPACE! T2 s4 T+ `1 t# l
QT_END_HEADER
9 I( K: d G5 t/ J% q- B# C6 m- x- m; O+ e
#endif // QT_NO_CONCURRENT
/ A I4 J* |$ y
. w& z4 ]* t z. l E! F4 Z#endif: X! N( M* m" Q+ M
% A, }% Y S/ |) i K* G, G7 t
|
|