|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! I; {- E5 ?- s' E& _$ a1 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'
8 ^' T9 [( ?: Z
, C8 ~ C! E3 j/ G, c2 D' e8 e, l这个头文件内容如下:
) ~+ U& D! H; q. N' T/ _6 D: q#ifndef QTCONCURRENT_RUNBASE_H
6 I, h, k$ T2 Q#define QTCONCURRENT_RUNBASE_H8 G' M8 V: G' m
* ]8 f% p4 V; B5 Y: B8 j" y* Y#include <QtCore/qglobal.h>
0 k- g9 x5 r9 J: w
6 |9 z1 [. V. G" A#ifndef QT_NO_CONCURRENT. i* J" ~- d1 {6 d8 s% m7 O
$ f3 p8 F! N' O5 u8 r9 B4 o! y#include <QtCore/qfuture.h>
, j: `$ j* j& S+ d1 r#include <QtCore/qrunnable.h>$ h# G, O; L4 j* @* u8 ?
#include <QtCore/qthreadpool.h>
" x6 Q& Q! P* g' `) J0 [6 [1 \' I B+ U y
QT_BEGIN_HEADER5 U2 U. P, h: @# ]7 l6 m" g8 g" M
QT_BEGIN_NAMESPACE& ?8 W4 N; }" y8 Q" D
u8 P' l( C1 |' U1 |
QT_MODULE(Core)
5 x! y# r* s& `: S2 t
1 H* {& m9 H+ B, g#ifndef qdoc# n4 `; h2 K- K" I* Y- S
. d6 a$ G7 c1 u0 x
namespace QtConcurrent {. k2 x" \8 C& h
, P) d* g+ }4 U" x5 _! Ytemplate <typename T>
$ G$ o0 o+ w7 L# b% Jstruct SelectSpecialization
1 i) t {- X! S3 K, u{
' A" _( ^. _' r template <class Normal, class Void>
: L9 S- K% R# E1 V struct Type { typedef Normal type; };2 X. e5 ?/ _! i9 V W* ^, `
};
6 ~" L& a3 r5 t2 r' X* Y' ^3 S6 S' B6 A: T
template <>) A5 [; E2 Y O
struct SelectSpecialization<void>
8 j8 \; {8 G8 r( w1 `# _1 ]{. f2 P% R$ t% T7 Q# J2 n! I
template <class Normal, class Void>
' H' N& c" D4 q struct Type { typedef Void type; };
q% b1 ~( o U2 Q( e4 \3 Z};. G* t/ U* N- T. P6 E2 `
% d8 n) ~( v. o) {* w/ Y8 rtemplate <typename T>* Y8 ^/ R' E. V1 [4 G* Y, q/ r- c
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable7 o/ f% F+ x$ W% S0 r( V
{
" ~( C; w( ^6 t* \3 m8 b7 A, Hpublic:0 b$ l; B6 e) j6 ]: x2 G
QFuture<T> start()
( e( Q8 v# \! t( ^6 ]! U4 h {
4 T! x2 @$ m$ N7 \; S: F this->setRunnable(this);& ~' J% q, X; }8 e1 i' ^9 T) {
this->reportStarted();
4 ?. @% a+ F; e) g QFuture<T> future = this->future();7 J* P- E7 }1 l
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 r3 B1 E5 _9 U# R
return future;
4 Z. ]) K j2 Q/ G }
2 }2 o% H1 M/ S6 } f) F- J
6 i0 J8 ?$ }. ]( ? void run() {}
4 W- O( [1 M2 K; a2 N% s) F virtual void runFunctor() = 0;
+ V+ R; T+ W' y1 q- W};
- f8 l7 H6 S) `; w9 L1 o# D. n' {" ]1 D% u
template <typename T>
" F/ O9 {5 Z) G$ }class RunFunctionTask : public RunFunctionTaskBase<T>" V" _4 O) A% m- X0 Y; m
{8 {) L: ~0 g* H2 l- O5 j
public:
/ `2 Z) b0 q3 P! @/ O5 Y void run()
& x+ S I$ o# ~# ~ {
* Y. b0 w" N. Q. m if (this->isCanceled()) {
4 ^ ] t. f7 P this->reportFinished();& l1 W8 R' R f$ h. n% Y
return;: P/ w- \& f' w
}
2 Q O# K& O' n' I: H' F this->runFunctor();
8 J$ ]$ J. N" O* L r this->reportResult(result);
+ Y+ m3 d9 Y- t3 x; f this->reportFinished();
- `+ w* B: Y2 y- w }
1 l# K9 Y+ G9 i. }# u$ R; P T result;
1 e7 P8 w7 B% A8 y& n};( U9 Z& T: v3 u1 J) v( B( T! ^, ^, }9 T
4 B: c6 Q T& T% Q$ Z- dtemplate <>
0 |/ v7 V" q( W m/ Q) jclass RunFunctionTask<void> : public RunFunctionTaskBase<void>* I8 n s7 d& U
{1 O1 k' P9 q( a: P: H1 t) o
public:
" U: O1 z: c; w+ q1 w' o* |' H void run()
) o+ k. @% J, | {! ?* z3 d; {5 C
if (this->isCanceled()) {% \2 q. N* y; v/ m! z8 `$ u
this->reportFinished();
( _6 M n/ d' Z" L" R# @ return;
. ~( @; @7 a; c; \) K }
- o* @, m% q4 { this->runFunctor();6 F1 q; j q2 E) T' k- r
this->reportFinished();; y+ f( w4 ^* |. I0 Z
}
4 H, d' I1 B; R, p! a};8 ^3 O# l% [# T) K% K/ r
4 P+ l8 }$ Y" b- I
} //namespace QtConcurrent S `2 L5 `- z P! i, ^
+ ]) E. o$ [: j6 g#endif //qdoc
# e2 i' @ U3 d. j3 n
) Z$ v: C: v4 z L6 X+ PQT_END_NAMESPACE+ W) m6 e- H' ]# l6 C* a
QT_END_HEADER
1 m6 c, J' v' B8 N' D! g5 _7 q, m5 F/ ?" M- v. H7 W, P6 m: \
#endif // QT_NO_CONCURRENT3 f9 I' B$ X1 ]$ w; O& p: Q" v
- l/ t6 `! E( `$ z' _% A
#endif: m, j* C4 m5 l: V6 p" {$ i6 c7 Y
* Y8 j5 V5 Z+ t! G: e' i% x2 b1 z$ D0 e |
|