|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( R# N/ [! u+ P. z! ?
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'! F9 a- z' P5 F7 K& D
( J L. A/ A9 ^; }
这个头文件内容如下:
2 N2 O' g0 L$ x+ D" u#ifndef QTCONCURRENT_RUNBASE_H' D/ c& z; d) v" a+ S3 R$ ?
#define QTCONCURRENT_RUNBASE_H
! [' N; j. h9 j: A1 W, ?0 \# K1 i7 {9 @7 k/ x
#include <QtCore/qglobal.h>
2 V7 `3 R4 `8 ]' g) h. P, q4 v0 Q4 j! r1 k
#ifndef QT_NO_CONCURRENT: \; r& S1 [. E& t) F( J: ~
* B6 G' W8 u: W
#include <QtCore/qfuture.h>" O7 y: x5 J" q/ v
#include <QtCore/qrunnable.h>
" ? Y$ _2 k5 i4 E9 H) y#include <QtCore/qthreadpool.h>
1 x7 o8 G6 D" }7 B
" K# E; [! }# m. H: {QT_BEGIN_HEADER# n) Q' l7 J z5 c% C
QT_BEGIN_NAMESPACE
& G' u# w/ e. X0 }7 v4 J* b' g7 b' c
e/ R3 T$ ^% g3 V3 RQT_MODULE(Core)
' `& ~/ r/ w. L7 Z, V" B4 M3 h6 Z) H# [: W
#ifndef qdoc
1 e; r! W' ~/ I& f" P$ U
) I o: ~2 N! I) [/ I& Rnamespace QtConcurrent {. o! D0 n: N% h3 }( t. t
p. k! Z# m# P1 T7 S7 f
template <typename T>" G: Y3 C# k9 B l- }9 g5 H
struct SelectSpecialization
2 j& X9 E1 S# `{
* q! g! ^. J4 Y$ z) w template <class Normal, class Void>. J/ v& f& ^( z) |: F
struct Type { typedef Normal type; };1 U' k; W: X9 @. O; j
};
1 p5 j7 a; r0 l& V
# b' u: [' k+ A: ttemplate <>
$ J4 R4 ~( v$ W# zstruct SelectSpecialization<void>. X- }% S( z/ D4 B
{% q8 g1 Z4 G7 o8 G# Q
template <class Normal, class Void>
- `- U7 F( ?( X struct Type { typedef Void type; };
" a1 N7 J7 J8 c' m2 ?4 S& z};
+ C# k3 j( b8 w9 {% |0 ]+ z2 C: U% v" V% P8 j$ w! A
template <typename T>
. `7 G [" v, G/ S7 M+ xclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
4 k- W: h) o8 l! g{
4 w Q) R: O6 B( g7 Opublic:. W0 H. K4 E6 L. T! z
QFuture<T> start()( ]& H/ X6 u: z" T
{
3 ~: n1 S7 L& G8 {: v5 m this->setRunnable(this);
9 g1 `0 q1 o( m/ |3 s9 @ this->reportStarted();# d' |+ K# j: `( x
QFuture<T> future = this->future(); J# W- A" O+ I" H3 N
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" {1 w6 i3 @) ^' _/ h+ r5 | return future;
& M. t4 R( I' Q- W }
# j% T4 d0 _" P0 n
) O% D" Y' C4 Q void run() {}) W/ ~0 _) T6 {
virtual void runFunctor() = 0;
& ?. F. d0 _: ]# n. ]0 e; q2 [};4 S% t/ j8 D0 _- l4 c
, F" b2 }0 _! x& s* z: B8 Qtemplate <typename T>- T% p7 q, _. H8 ?: O9 L( B
class RunFunctionTask : public RunFunctionTaskBase<T>
' P) C$ s9 A3 W( _5 `{
. n3 _( R, `9 s! Y+ @6 ~6 Dpublic:
+ B8 U2 n6 U) c* i: I! D6 B void run()
7 Z% r! {0 m- N4 M1 t! [0 W1 P& T+ e {
7 e3 v- L) ^+ u! z. X0 W& n; p, O if (this->isCanceled()) {3 b; [+ _5 j b }9 Z9 @* ]' V
this->reportFinished();
" _- Y7 v$ Y3 F9 R8 F4 x8 n return;
; A% B/ U# h( Z! q# I8 Z e9 }/ s' b }2 n7 K, V8 \8 C; ]- X
this->runFunctor();# e' T" k# Z. M6 W8 _ Q: G9 l1 E9 q
this->reportResult(result);! D* |: [( `" o0 @& j$ d
this->reportFinished();: d! q) T9 O& i+ d5 m9 b# q
}
" b7 Z! G8 w6 S( Y4 n& Y; p: | T result;
. {/ {7 M9 @% z};
7 m! ~) h6 p0 ]2 U
& ~) _. X+ d. ~template <>$ o! S4 r+ h8 Y8 Y% B5 [' Y4 C
class RunFunctionTask<void> : public RunFunctionTaskBase<void>, }# o( O6 H! R* X& R
{, l" n5 ~$ N: j, T. k# X" k o
public:
4 A4 W; {: e$ L- `% U7 B void run()
: n5 r. U7 [# U& ] {9 I9 o U8 P) J' ?7 u0 r% C: N
if (this->isCanceled()) {
9 |* Z* H3 [1 g* X, O& X8 {4 Z this->reportFinished();
9 J. B1 D2 \7 o1 ? return;
3 |3 j- [# n7 ^5 _- r6 I6 F }
6 p; M1 s: U5 t+ x, S! O( S& b this->runFunctor();
, M6 z& d" |! d6 o8 d# \7 E2 b this->reportFinished();
6 @9 ]6 B! |( A& ^ }
9 e, k2 Z0 ^9 A9 `};, G! N$ s0 {3 K! s9 S2 v
8 g# U# @) Q* w& _) D: [- {" f
} //namespace QtConcurrent
6 z- b z1 _+ }- F- f9 }" |4 r2 a3 U
#endif //qdoc! [* v2 m# L; }$ K
3 J; f$ F# `. y: M9 S
QT_END_NAMESPACE
f7 n6 }$ X( c! U( kQT_END_HEADER
! R4 ~9 q; _; C( z8 k0 e, M. G. v9 B% F3 m
#endif // QT_NO_CONCURRENT% r2 ^% j8 T: Y
1 B5 W0 s- }' Y3 K( c#endif
9 R0 x8 p9 v6 M# x! F8 _) d% W0 b8 X
|
|