|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
3 _8 C+ M7 d) Y8 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'$ M8 J/ r! ~% h
V. R4 W9 v/ J. M% R这个头文件内容如下:
' Z8 T" s1 E" R4 e7 W, C* ]#ifndef QTCONCURRENT_RUNBASE_H
- L5 S$ \4 J, `- L& X- f#define QTCONCURRENT_RUNBASE_H1 o" T: b% n9 w, C: \2 x4 i! `
: r# Z6 s" o9 M. p' s$ V#include <QtCore/qglobal.h>
$ w9 ?& A1 _/ u" V) r( c4 k; {
8 c3 J! z( {' Y#ifndef QT_NO_CONCURRENT% U( C# `# P" ^) M4 D6 u5 d
( h7 @ s# Y4 T/ D
#include <QtCore/qfuture.h>
/ i4 w: J3 \. N+ J2 i5 E#include <QtCore/qrunnable.h>
+ f/ |; n9 K' }: E$ l#include <QtCore/qthreadpool.h>
9 V: e- s& T. @" R* S6 S* P3 @1 U \( Q3 T, H5 q, e* l
QT_BEGIN_HEADER
! Z1 \/ w3 b3 Z9 q) r. yQT_BEGIN_NAMESPACE
8 }( H7 L) u9 ^8 a
! M+ |$ F" p+ s5 G: J5 VQT_MODULE(Core)
+ ~* i3 [# A5 Z
$ @' ~. h9 ^; X' }5 ^- F. ^ b#ifndef qdoc! {( w; ?& U9 T& |: V
! o8 j0 A# p9 s& Y; ^
namespace QtConcurrent { E3 G5 q q2 A$ B1 L3 F) n9 ^
& \# m9 h# B' n( S/ D0 H3 Ttemplate <typename T>8 B. q. D9 D0 \4 I
struct SelectSpecialization
; o' ]7 v7 M2 q2 X{
9 W+ X' o9 n6 \3 I, J" q: o template <class Normal, class Void>
[- D- t. F: y; y: R struct Type { typedef Normal type; };9 N# F2 k2 w- u5 n
};' m0 ~2 o: s5 A& z7 _7 v
$ s- D# }2 }5 d: U% O
template <>/ v9 E7 X) o/ O: C1 Y
struct SelectSpecialization<void>
" ?$ z0 W1 v! P8 E z{
6 D0 ]0 D3 b& L: O9 c template <class Normal, class Void>
# @# v# I( Z4 g g0 J struct Type { typedef Void type; };8 T- q" J4 N" q C) Z
};' n2 h5 Q8 N& Y" d- S$ X
2 z4 |8 S0 g9 a) F- V; F2 e$ z
template <typename T># ]$ K! J# ~4 w+ s5 c- b+ [
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
+ x7 a( t- m# ]) M7 f0 x0 J{; k9 \, j/ F- o
public:% G8 n' s& }$ ?: d0 \ u" A
QFuture<T> start()
% ?$ r; Z" O; `7 Z {
% ]% i' }* O" F6 G, p4 V2 f this->setRunnable(this);
( t2 _0 V0 D {! V, K8 C' T this->reportStarted();
+ _4 D* W' h. G. [5 \ QFuture<T> future = this->future();7 B; f( | ]' o" R* h
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
) M. E, Z; K- X6 U4 w0 z return future;7 z4 e3 P8 x% [
}
4 {' `" _# z3 i4 M* k. Y7 W' N+ b% F1 e% @. Q3 U! t; q" }6 Z
void run() {}1 x9 Q8 M1 i( i) |2 R& j
virtual void runFunctor() = 0;+ g% J; Y* K9 {" W o) }# [, G
};+ `5 i( x! p# T% K! t) ?/ p" k
; ^2 C5 Q4 U# ~& u* m8 p
template <typename T>
, ^8 D' h2 e1 m% y$ g4 y6 Mclass RunFunctionTask : public RunFunctionTaskBase<T>! j6 B0 B J( I
{' T9 N9 k- ~, h; j: k
public:
w2 e N2 [, q1 y% H3 H; _, [5 M! O% D( r void run()( g2 p& ~8 o5 T: g( a: P
{
; S5 a% \# l$ y0 X- y' \& g) q- O# ] if (this->isCanceled()) {
4 _4 @4 Y( f) t4 d' l2 M this->reportFinished();
9 {( G( N( V2 U return;+ Z( \) w) O. p. C2 H( \" p$ ]+ G: k
}5 \' g1 h* c5 o1 ?- @- C: U7 s
this->runFunctor();
I( C9 A8 w1 M2 J this->reportResult(result);
8 C- H# Z. o4 C9 M this->reportFinished();
* ~* ^5 k) O' m+ J/ o* t, i) J; D6 { }" @. i' n/ M: C
T result;0 x' K: V5 ?( k [! G3 I% w
};
9 F4 n I. D% y4 b! ]% M$ v1 n3 t. h- V! A2 t3 U* |& u5 x
template <>
2 l2 o: D! @5 T* j" p9 ^2 C3 mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>! q; P# r0 n5 M) I& |1 h) f
{& f$ e! K: i5 h
public:* |/ o9 R8 Z8 m/ l
void run()9 G! h" J5 m' @
{
?& B$ b. O5 x, n1 o% ?4 E if (this->isCanceled()) {
" s& \3 {- ~+ | this->reportFinished();: T9 B. }( Y! P
return;
! R' y$ q6 s% k: p( C }6 c' n/ y8 P' j# l9 o2 m' e
this->runFunctor();1 ?( J [, E; S
this->reportFinished();5 T" Y1 P) I' F- T" t/ h% w) L3 k9 y
}# h) S5 L) U4 h1 n* u. ]
};
) w- o! C5 y6 F# B
: {8 z. f! ]9 Y2 T. ~' r9 a, l5 |} //namespace QtConcurrent
( B* Y9 S/ h) G4 M# z( w3 f! t( X# ^5 G4 w
#endif //qdoc0 C; S$ V. l( n1 @
6 q" l* S. K+ M$ b- M
QT_END_NAMESPACE
4 }2 R1 y1 C) tQT_END_HEADER% ?1 m2 c$ m5 S, M' l, A$ F
' g1 T y0 m$ h% N _% N
#endif // QT_NO_CONCURRENT
* Y$ d8 h7 Z8 T7 q& P" m9 ~
+ H/ Y1 I2 U1 \6 I' W#endif
7 K Z _" H v" V! ^
# x) ]9 ?+ X _' p. P% t! w |
|