|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
# w7 |# d5 v5 |* v/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter' ~8 s: ?8 M3 y. y+ r6 z
6 m# ?8 _2 p: G- b6 Y8 I
这个头文件内容如下:
" e" @. k# M6 ~" _) P- ? E& U#ifndef QTCONCURRENT_RUNBASE_H8 U* ?2 w) o' T% S$ ]8 c) V
#define QTCONCURRENT_RUNBASE_H
* j) [5 g4 ^. v) j+ `9 U- l! o. @; ] `; Y" K) ?( e9 a
#include <QtCore/qglobal.h>
0 \' w7 j/ l; B; m8 ~. K& k8 j4 Y( E0 g9 F9 R- p) N" y' x. h/ _+ p
#ifndef QT_NO_CONCURRENT |9 \# E: m! x3 _5 B8 |
. Z' N5 _. |, Q) A% o#include <QtCore/qfuture.h>/ \) v& |* b( m
#include <QtCore/qrunnable.h># x6 k. a/ } w4 E0 W7 M$ g7 R: y. z
#include <QtCore/qthreadpool.h>4 n' T p! o4 B5 N7 E$ R
' P" E: g) y) P" t: G0 T
QT_BEGIN_HEADER, c8 {( c, Q7 e b! G5 m
QT_BEGIN_NAMESPACE3 B$ ~ R) y3 d% W2 u4 |0 ~1 j2 w
) C+ \% D! f3 ]2 k( u# i3 T8 Q
QT_MODULE(Core)
) O; k3 Z: V& a3 A4 h- n. b
: _/ O; u: p- G2 J( p% L#ifndef qdoc/ G% Y; Y% E3 |* y5 E
6 b Y/ s! Q$ z# Fnamespace QtConcurrent {4 F7 E, `8 a+ {3 I" @" k
|( Y' m, p- k& ]- mtemplate <typename T>
/ b) p t- A% dstruct SelectSpecialization @4 g! `0 j$ r: O$ a* Y b
{+ `- C: z/ O8 [- x6 |; _$ u
template <class Normal, class Void>
& o; V; T1 l3 `& s8 P9 S/ U struct Type { typedef Normal type; };
" h2 Q6 V% r. E+ Z* @+ Y6 l2 y};
# D/ W6 F/ g* R3 ]! K4 g
) }8 n6 T' B1 R" A- ytemplate <>3 Z. ~/ t; | I
struct SelectSpecialization<void>
. {" i6 _8 L/ w# k/ o. }. q- `{( v9 [; p4 P" g: q* M& F/ ]1 U
template <class Normal, class Void>1 v& j) M1 D. R. a! n
struct Type { typedef Void type; };1 [) c) L# m: |: Y b' ]
};
4 d S! B% a2 T# h
; t. w, J8 @7 @template <typename T>
3 M4 b! i) k& Z) K; Wclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
9 t4 C, ?- v4 T% n# f, K2 q1 p# k{+ [5 Z; G) P" N" k
public:2 [" t# ~) H' U- J% Z
QFuture<T> start()
( u5 Y9 q' h. y/ w- ?" w# L% Y {
b+ ~/ z2 ~' e( P+ e this->setRunnable(this);: u0 {' L+ M, E" ^1 x8 ]3 P+ P
this->reportStarted();
* w1 y3 X" L' w9 B/ i& p/ n. V QFuture<T> future = this->future();
/ I$ j, ?" N1 [/ G" G QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);' V6 M6 O. }9 O8 [ X) a( J% |
return future;! a7 D& p% b) R7 K, X+ a" b
}
1 `3 R# \& \ e8 U4 J7 _" J4 h" P9 Z5 ]
void run() {}
* q6 @4 X7 R, g) d" F virtual void runFunctor() = 0;
" K- @' |, \, b) u' R7 `6 N};
, g. Z1 O4 j2 l5 _; T% S$ q2 l! |3 s* l* b3 }
template <typename T>2 A. W8 {7 K& j$ p x
class RunFunctionTask : public RunFunctionTaskBase<T>
4 M1 C& c. ~$ n3 A{% P$ @/ f/ d* m# W
public:
; |9 T" ]% O, H5 ?0 k: Z void run()
, d+ j9 W' q4 G {; X& b {
: }: \' ~& d3 H3 S: c if (this->isCanceled()) {
9 d+ V( q# s/ z6 {' \7 ?% ~5 M% W } this->reportFinished();% s2 @7 d s: p: i6 n
return;
& Y. t0 c& D8 ?3 B4 u! s8 V) ] }
8 u1 X6 F7 A6 L& r5 K) S- H this->runFunctor();
. F$ n( E9 i3 ]+ N this->reportResult(result);
5 [& E$ d0 a+ \1 ]" w7 V- y this->reportFinished();) p' ~; p* M/ z) x. C% ]0 b0 u
}
# H8 t, D) J/ G5 s T result;6 ~/ i0 b) C0 e* I! u# w
};6 h' j: a; ?2 A$ [( ?
0 ^4 Q" [1 S- z8 b! D
template <>
2 U, T6 w6 c1 F8 Mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
; Y; _3 w( E& y* g! w{$ R; m) k* @$ x2 f' x/ o7 Z7 G
public:, w$ C0 [0 E! i( Z* W. ~2 |7 [
void run()7 t, V; G2 z, m; v/ @5 r" P
{
5 J: T6 `9 V$ c# T& X if (this->isCanceled()) {
; r! j8 ^0 `$ x: ^ this->reportFinished();
! A, P9 p: L7 m return;5 J a. h) ]9 _% \" V8 q& Y
}
" f6 _% n5 k" l D1 j8 t this->runFunctor();$ D- b7 i; s, A/ m8 ~# C- U1 Q9 @
this->reportFinished();/ J8 T& P* [0 T5 O5 L+ g% \
}
. t8 e% d0 L+ ^% d9 m% D" E* I};1 D7 ]8 @% S$ B- V
) k2 @$ j: \1 u
} //namespace QtConcurrent
! v2 M' ~4 f- Z$ H7 m. N5 T
8 S; s# X1 o! r/ i#endif //qdoc& q/ ?" N* _/ a6 @" B. [: k
9 T2 c! I# ]% D5 X/ tQT_END_NAMESPACE! @7 E4 N( I2 B+ ?- S( c
QT_END_HEADER
?% B" H4 _0 G$ e% w1 u- g: m0 i
2 y$ D; c! p; ~; {( l) q; |#endif // QT_NO_CONCURRENT
6 O3 v u0 F& ^5 E& y
+ [( D. t. s3 n& h6 Y0 M#endif$ k" }2 w$ K- m. |/ ~/ y( r
. O' E- }7 C) G# h" C7 h9 y
|
|