|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% U5 {( v; X% E
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' C# d$ s& f; e% H6 E& c/ O/ M9 y# `! L- l; _: ]
这个头文件内容如下:
3 ?$ u5 E" F, _#ifndef QTCONCURRENT_RUNBASE_H
! X }- S# F- e& {3 N" L, K#define QTCONCURRENT_RUNBASE_H5 W' M6 N* v6 j
! \& A7 K, \/ m% X1 F6 R- J0 N#include <QtCore/qglobal.h>/ o$ a3 D# o$ `9 |% s+ c) r
% l; d& i" Y* k3 I- G# C* m3 m c* t#ifndef QT_NO_CONCURRENT8 Z" M T6 O5 A
1 @8 F* S& L! h
#include <QtCore/qfuture.h>
) u6 o: [0 g" K" k2 _#include <QtCore/qrunnable.h>
[) a0 P. F; C0 D3 @) F, v#include <QtCore/qthreadpool.h>$ F, {& `, X5 B+ p
7 T3 K8 H5 @) B/ ~2 }3 Q, cQT_BEGIN_HEADER' I5 z) ]4 O, b* g& I7 s6 W# n8 F
QT_BEGIN_NAMESPACE
2 w) Q6 `$ H$ }& i. o' J$ {$ g
& l1 q( S! k7 U3 J( z+ B7 }1 t0 XQT_MODULE(Core)8 U' w5 I4 ]5 {4 j
& B+ S! ~. ^4 q M/ n) Y+ j
#ifndef qdoc
! N" d2 k7 g, l7 @" R6 J
- V6 L+ m2 e/ D9 u4 anamespace QtConcurrent {
6 ? `( y9 S- C* f! ?, J- T
- p+ R2 G3 g+ D7 M5 X7 ltemplate <typename T>
9 ?* a7 E/ l4 b3 }+ Ystruct SelectSpecialization! I4 F2 e; u: a( R0 T
{# J: v) @( {2 s" e
template <class Normal, class Void>
$ q$ T; ]+ F4 {1 X; A struct Type { typedef Normal type; };, v1 ?2 d5 a4 o6 E4 x( m
};5 g, F* a" F8 h) V# p5 ^; S
/ ]! k+ C! z, N: W1 k) ~$ f
template <>2 ^5 d/ @# W4 Q, {
struct SelectSpecialization<void>5 B+ M) v; ?0 u& o
{7 A- n8 t) `8 U: L+ Q: S
template <class Normal, class Void>1 R2 [4 u6 H% o- s7 B! [+ b" h
struct Type { typedef Void type; };
" z# U# h: q$ z0 J* L/ Y2 k; u3 C}; b W5 Q; J/ K; s/ U0 o
- D% ^# ^' c& H, j- k4 p, e0 W4 Ttemplate <typename T>1 C) Z4 ~ E2 _, [* }
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
9 [8 ^1 ^4 [- q/ N z/ T G Z9 H, r{5 \5 N& U% \0 h0 ]/ P8 p: b, d
public:
5 k3 b8 _' `( h5 S3 T QFuture<T> start()7 A t) i6 j! e' R- g
{
3 S/ I! [% q& U% ^" `0 b9 a' I this->setRunnable(this);. {1 m8 w3 i5 j$ J2 B' Q- @
this->reportStarted();, r' @- L! n3 o" Y1 N1 }. m
QFuture<T> future = this->future();! U" d& F! o+ n3 `# Q/ e
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
9 {8 K5 `* R5 T7 R4 j! }* J6 P return future;0 \( s [! C0 U# E
}
# ]( w, B+ R* S
: l* B2 q2 Z* J# z4 O4 h. f5 O void run() {}
, d8 `' x3 y( ]0 A2 g+ e+ G. k6 b virtual void runFunctor() = 0;
2 X% t4 E7 u+ T, B) ~};
* t; t4 X* z7 v$ h1 ~) V
2 J/ M# C+ ^" g( [, j. e3 itemplate <typename T>3 W8 n. h2 z4 e* g7 l: M+ j
class RunFunctionTask : public RunFunctionTaskBase<T>, w! ?! T" t8 W( b4 l3 J
{( j7 @7 o" v$ w+ Y, [
public:& X; `" r# h# Z- e( f: \
void run()5 o2 [, V9 X% E: N+ u0 V7 O; f
{
+ ^. A9 [2 _4 f% R8 K0 w6 r3 j- ` if (this->isCanceled()) {
. O, H7 k' h7 Q$ K+ e' w this->reportFinished();
* \* x# q. f8 l+ C: o, n return;; s6 f5 G% e6 |5 q1 z$ N+ }1 S8 S" s
}
, K3 F0 G* B7 A' O) c# g! b6 t this->runFunctor();
% y. ^7 @6 L; A# D9 c this->reportResult(result);3 j( [! [" m% v7 O# T( {+ t4 H
this->reportFinished();$ j5 ]/ K' `! D/ x8 \+ w
}2 R" p- x. N$ w
T result;( j) M5 a* j7 d# X- M7 v
};: Z3 Q+ D- |( @2 I8 B8 x3 G) r# i
% ]+ n5 r- `- C) d& Z
template <>
$ H3 B- H( o, c) C0 Y* Oclass RunFunctionTask<void> : public RunFunctionTaskBase<void>4 E/ j$ |# l* X: j0 I
{
3 b8 v6 z/ {" s. L- l7 p+ ypublic:4 i9 T+ g9 b; ~1 _. V
void run()& ?9 O& t/ n4 B% F& j
{- l5 ^' [/ }2 W' L- G7 R$ x3 `
if (this->isCanceled()) {3 d' k5 l \: k+ u8 w. o
this->reportFinished();# L \& z1 {; Y" ^& m1 |
return;3 ~0 z( c: Z6 e& Q7 _7 s
}) Z7 M8 Q9 k% F/ H2 W: Q% _* f
this->runFunctor();
+ {- `) Y ^2 e9 V& a: b( C( H this->reportFinished();5 q1 q) u! Q, e' d. N
}) e+ f, e, T2 L( S5 o
};
- U) M }5 H% D. \* k, N" `
/ F( G; a5 d* Q4 _6 e" d" p} //namespace QtConcurrent
0 s* |0 U8 C; _) [4 \7 N. b$ E
$ m# @( M1 |, a: s" O5 T. @0 B#endif //qdoc6 [% u( ]1 \$ k9 n; Y7 ^
. y1 z2 [( x! d& o) UQT_END_NAMESPACE
' w3 w; f3 H/ |' Z7 t; Z: T- bQT_END_HEADER
F& f' X5 l* @$ R9 @, `6 x. T# P" H: x4 h, N
#endif // QT_NO_CONCURRENT
+ J# `. L- w- X% ~! t0 r( c4 B5 t) D" Y6 k/ l9 S* G6 X3 D1 U
#endif
c3 G- L/ a: P/ H$ A+ c3 K
2 K7 A, x- f( w |
|