|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( O# p) \. R5 g9 Q) s' i
/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 w3 r" b5 {9 q, B, S3 [' S9 g- s* }1 M8 r: b/ ]. o; Y; g
这个头文件内容如下:
6 ?) o4 v7 j, C/ c( f, M" ]#ifndef QTCONCURRENT_RUNBASE_H
, T- J( b) U0 ` N/ }#define QTCONCURRENT_RUNBASE_H
/ w, g0 e7 s, Q( ]
5 X7 F0 D/ U7 D$ z5 w* [9 n9 E#include <QtCore/qglobal.h>0 y- u( h! o- G8 Q
0 v5 S; J" K8 P4 K" t. {
#ifndef QT_NO_CONCURRENT
9 y% r8 Q9 j4 h
8 e. ^5 N5 w; F3 |#include <QtCore/qfuture.h>
, [. @: a" d. G0 ?9 m) t' R#include <QtCore/qrunnable.h>) ?, [5 K- R0 b( \) w/ \) y
#include <QtCore/qthreadpool.h>6 E1 J* {9 s! k( U# i/ b8 k
/ [3 d8 W: I" v% l A8 \0 c
QT_BEGIN_HEADER
5 {: d2 p7 p0 I2 H6 d# eQT_BEGIN_NAMESPACE/ D. V' ~2 q0 j& G/ Q, K
9 z- A; W: z) K- pQT_MODULE(Core)6 }: \' K7 i! a' g' v5 }% P* h: w7 R
& l, {. w2 @( J8 M2 k! k
#ifndef qdoc
7 P* U7 u6 b2 {8 R- R. k# N2 k4 |% @* l
namespace QtConcurrent {
$ q5 G5 ^- I- R& Z: q/ ~1 w) i% J7 [# j2 ~7 c- v" K, }" x
template <typename T>2 g$ u. U/ o0 p2 E9 ] K9 J
struct SelectSpecialization( \+ T* a# N' C( S
{ I) {7 \& p5 w$ Q
template <class Normal, class Void>5 \, o3 _9 p+ ?3 k$ Y- L* a
struct Type { typedef Normal type; };; n5 v8 P. h2 R1 ]
};
0 E, x( V, @, G$ J/ D
}- `6 N$ p* E; B- E- w$ A% etemplate <>
' d% J" S) z* Y% [struct SelectSpecialization<void>
7 P! P0 Y, B, W* n8 c3 |{1 J4 {9 }9 I; n7 w" D" F
template <class Normal, class Void>: H% Y# j9 B0 }4 u8 c( I( m! K
struct Type { typedef Void type; };
|8 H* i6 \7 Z* e0 k};, n$ d# c( ?/ }3 Y( h( s; p& W
4 _% B1 _) m# x- m6 H' A
template <typename T>6 v: Y1 u0 s5 B6 a
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable1 {: g# z) Z6 `# X4 D; g
{$ l6 K' k/ D" \5 q" o* T
public:! {' g9 ?! g4 N; v
QFuture<T> start()2 [& a* U, B+ m2 T$ O5 F. h& q
{
) L( m, L i3 E: g" e% R0 n" A this->setRunnable(this);
j0 N6 D) C% `/ v6 D8 g this->reportStarted();5 N2 n3 W7 E) ~0 a1 J0 q
QFuture<T> future = this->future();2 `2 ~/ p0 l4 ~* d( ]
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
9 A! `+ A% b- J) v! }7 e" n return future;
/ g) K/ [9 D1 G' A }9 |$ u' d2 t: C/ Q9 s+ t' s
0 G" `7 q- ?! {4 ?) x' n
void run() {}
6 B: D4 |& ^) t virtual void runFunctor() = 0;
5 U9 ?# o' }+ ]. Y};
& J+ f4 [! |) s% Q4 @
4 E- W, t7 m9 _# f htemplate <typename T>/ i- k1 M& O- a9 e1 C9 p- g
class RunFunctionTask : public RunFunctionTaskBase<T>
. D2 C) j( v' i: Z; b{
. m1 h& D6 q3 [2 h+ R/ c. E! Tpublic:7 B3 n' ~% G9 S/ b5 T- L
void run()0 A2 @2 ~+ `1 u$ d L( }& ?
{6 P8 y1 a' m) q- F; x h q. o
if (this->isCanceled()) {4 P/ b* |8 J2 r* Y! h
this->reportFinished();/ N% z( I8 o1 R8 @. z; R. Q. R
return;' x$ m. g, i( ^8 i1 e+ j1 {
}/ {) d3 n! P) `: @ z$ o( B9 m
this->runFunctor();3 K3 T1 _* {' W* B: b8 U9 C' }
this->reportResult(result);1 X) |* E, Q" N8 g
this->reportFinished();
1 p b4 J5 v8 c2 \ s/ I3 W7 C1 j6 H5 H }
2 I( `6 e) l3 M+ M/ ^$ D T result;
8 U6 T0 U/ e: A) Y5 r};
. T$ q! N' E5 Y0 D
1 Z4 ]) N; ]0 S* htemplate <>
$ q! f3 i# ]% iclass RunFunctionTask<void> : public RunFunctionTaskBase<void>& H* u' V7 E6 p, X J, P
{: Y3 V- V. z; c4 ?+ c+ h
public:
2 \7 Y7 R/ ]/ ]/ T) I& E4 w2 N void run()% \% `& ]% Y5 w n7 D1 c4 n
{5 O9 A% l2 \: `. ]' n+ J
if (this->isCanceled()) {1 A4 U2 a# i- F3 H4 f
this->reportFinished();
R- |/ ]& G9 U' v" l" a return;
5 c, ~( ]9 M4 B4 w% A }* E8 \; n) [" f& Z, K- h* s
this->runFunctor();! ^# J: K( v6 i! _, s5 e
this->reportFinished();, ? C+ K7 q* e9 K: B7 G% T5 e
}
5 _) g( {4 I% a# [% H7 \+ L b};
! q G; b7 }7 g5 r- l3 s5 x9 ?* ~
} //namespace QtConcurrent
/ {* Q& c) w1 T1 R# h2 V
8 w: `9 q- p5 M5 `0 w1 ~& K. b#endif //qdoc
2 J4 v: g5 N5 Z5 R3 b# h/ F! Y5 S8 F
QT_END_NAMESPACE4 I9 U1 Y [* t2 m# z/ F
QT_END_HEADER
- }& @* E8 H$ J$ c1 a2 W8 v
5 \# _$ r& }+ I0 ^# U9 Z- A' E7 v#endif // QT_NO_CONCURRENT
4 P+ m# V% M/ J# {
; o& v D0 e# \# r, X#endif
/ r, m: s+ ]& s7 J
$ \3 | M2 C8 g$ ` |
|