|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
* U5 T/ L1 K4 a" {6 Y/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: {7 P9 G$ y2 W! d X9 u9 @9 B/ J# H7 q
这个头文件内容如下:
3 W1 B% q/ b4 \6 }, w#ifndef QTCONCURRENT_RUNBASE_H) \! ?7 d/ B7 A- r; F! i. K0 q4 ~
#define QTCONCURRENT_RUNBASE_H2 U8 H4 R5 R8 y0 d' Z/ Q; a
, ]3 A( M( R$ k+ o; f" k
#include <QtCore/qglobal.h>" o7 }- P# Y0 W) ^0 T# C; |
' g2 f p5 Q; t! ]. y
#ifndef QT_NO_CONCURRENT
* \# R1 X0 z+ J) k
# a0 `3 i5 a5 n8 C0 _, j#include <QtCore/qfuture.h> i) a) T0 ~( s
#include <QtCore/qrunnable.h>
6 w$ H9 y" ]+ ?1 L; C1 B#include <QtCore/qthreadpool.h>
% w, r$ c% n7 ^" _
% h# j! u) a0 B# Z6 C. _QT_BEGIN_HEADER* I. n/ d1 }0 U7 | \8 e: ~* @
QT_BEGIN_NAMESPACE5 k/ W1 N0 f: O! k! o
' ?9 n$ y+ @) V- I1 `( H8 o, T
QT_MODULE(Core)
$ _- q7 S }" T3 s- C) K! C2 V+ V) L D( e8 f
#ifndef qdoc; g5 s1 M( D- ]; @7 V$ v9 C
& v' B; A% z$ R, z% E
namespace QtConcurrent {
8 i5 t1 E8 D9 q
: j4 E: n1 _8 j" |, T, F" Atemplate <typename T>3 N5 r1 ~6 b& E }; r
struct SelectSpecialization
4 G, W6 Z. M( x* K9 a3 F{& u" k" h1 ^' y" a; {" S5 f" x
template <class Normal, class Void>6 g1 b' E: _+ Q; z) |) ]
struct Type { typedef Normal type; };5 M$ s1 c* O: ~% Y
};
- x" }3 H) H. d* d% U: u8 C( X" l4 F# X4 b# H. N9 f9 z, }9 }& C: B
template <>
7 U h7 h2 B. @! tstruct SelectSpecialization<void>
) C( u8 L. G, J: a& i, v6 I/ p{4 q) X1 S( D, c0 k: H' c" Q
template <class Normal, class Void>% ]3 x: }2 r' }3 O9 S5 j
struct Type { typedef Void type; };3 ?3 S, ]7 S& B8 c
};
/ N% R8 \8 y6 b; R
3 y. p# s1 F' W2 o ytemplate <typename T>
7 \2 s" ]- C7 F3 c! x( C7 X2 ?2 `class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' w3 X7 h, N. B/ M0 }( f
{* y; v5 C A, V6 k9 v4 U/ o! ]
public:! P6 c- u) i' z/ `; k1 z# }
QFuture<T> start()
1 a7 j% o" V, R/ H {
% s( U, Y4 j J1 @$ B this->setRunnable(this);9 I. o y0 Z7 u7 J0 T9 {4 s
this->reportStarted(); I6 W9 J/ z) i
QFuture<T> future = this->future();
+ F* d& y6 X* U% [ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);2 P0 P# R }( B$ k$ y
return future;3 B- b2 ]& Z9 b0 ~
}
: u- T. Y6 b9 B/ V. ^ n, R) A6 A# K6 {- H
void run() {}6 L8 n( L' W& T" u
virtual void runFunctor() = 0;
3 u" ~! Q5 \$ j% l};6 z, B# r2 u- g0 R" m& @
* k& ~' q% K. n" M3 Vtemplate <typename T>
$ z8 [6 Y+ J5 `% S$ T/ wclass RunFunctionTask : public RunFunctionTaskBase<T>1 T- a. f: t9 A) J. `& G
{
J5 {! h5 p4 O$ n. @public:- t: i( A0 @1 x/ b; \; N& D
void run(). m+ Z9 D& y, ^- G# W0 L9 A
{, K/ u2 O4 g$ d
if (this->isCanceled()) {
1 M: j3 l) i6 t: R this->reportFinished();& U; r2 l* Q/ r# r ?
return;, b1 E. w. \- f* ~+ n$ @
}! B4 _% E& b! b% ]7 _; T
this->runFunctor();
8 x; m- P/ [, [% @4 V3 N this->reportResult(result);
4 I ]5 A# k% k$ S y; F9 B this->reportFinished();4 |6 N. v m2 a
}
- x) r+ V3 z5 _# w, h T result;$ g$ @! D& U* X9 C- _& }: a
};
' K1 I( M/ P; G9 F% x H( i: S' K/ m( z8 y6 }
template <>5 }" ^* _# G: J" r X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 y- d$ `3 t, B. O; d0 x{% |7 e1 B! @5 Q4 a
public:, a0 s; y) ^; d1 o4 P! L% p+ o( K
void run()
& r! d% M( p7 w {
# K/ @ t* f5 o if (this->isCanceled()) {
. L2 s0 Y8 J2 g% s$ Q this->reportFinished();5 |, J' v7 m0 y' h
return;# b7 G, H+ g' }, x$ N
}4 L4 I+ {# b/ h/ l1 o. S
this->runFunctor();
! b9 h# @& L, e8 d5 w* _* J this->reportFinished();0 d9 a- Y9 |8 w; _* ~
}& I9 B. Q+ [% c9 [ e+ h" V
};
5 W$ G8 _, z+ |8 M) f0 a6 T$ C( X- |
) R- b/ _' _+ u/ K; [1 U} //namespace QtConcurrent
: V8 ^5 x) W* G7 h! k& Q
2 g7 W* r; x! `/ _# F, H#endif //qdoc
% ^* _8 p, r% Z4 ^* T# |) M* j. ^# G- @, f% i
QT_END_NAMESPACE. R( V8 i+ t* J4 x
QT_END_HEADER
2 z; n2 f9 ~9 v% G8 E! M. r. ^
# W" I. E X8 Z2 f, S#endif // QT_NO_CONCURRENT1 ]' P8 B- y7 l8 O8 O
% l$ W. r+ j0 E8 a! z
#endif
& y$ B# `! O5 z! x0 B k7 B) o8 z% b% x5 W1 G# `
|
|