|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ G2 z+ \8 l/ R9 s
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'' s( c6 p$ i1 P+ K1 ^/ ]3 F
( Q, j; v$ W: v' d" u这个头文件内容如下:
4 B3 `1 D6 o G& k. M#ifndef QTCONCURRENT_RUNBASE_H- [, ?8 `6 ]) c5 `+ ~
#define QTCONCURRENT_RUNBASE_H( q( H( M. R% u) F; i7 G3 U
9 c7 Q# [' {) x; P+ t! [# ]7 u#include <QtCore/qglobal.h>' K1 V" V- w& _( ?9 T( n
; L: F4 H! B! u#ifndef QT_NO_CONCURRENT
8 J: g9 s% Z6 R$ n( C- d# j1 k% ^; `
#include <QtCore/qfuture.h> V" Q) i: [: X: |$ v' B
#include <QtCore/qrunnable.h>
) v( j! F9 O1 x, L# n# N#include <QtCore/qthreadpool.h>
6 T8 v S6 B! s2 t& D; u: l
* U! l' ?" _3 ?( SQT_BEGIN_HEADER
$ u0 ]/ b% G5 w# b" ?QT_BEGIN_NAMESPACE
- E; T9 Y5 n( a, }' e
+ [% ?# F3 {7 Q! UQT_MODULE(Core)
5 N& `. Z' ?$ t7 L# Y+ D+ {5 G6 A: e- H8 ?7 q
#ifndef qdoc
/ k- f% h5 a* f
8 J% V$ l; ^* U% [* b2 ]namespace QtConcurrent {
- J7 |* Y3 ~) a: Q9 [7 x3 }* Q+ t* D9 g* P: E% G1 m* e* j' O
template <typename T>
2 v5 k. D0 s, L/ j5 Nstruct SelectSpecialization
: N7 l3 L, u% z$ e- X{7 c8 \$ o# S& H
template <class Normal, class Void>. C/ R8 R8 V" K; }! N8 K, m
struct Type { typedef Normal type; };7 x6 U$ e- b! `
};
6 T% E6 K0 F1 t: S
" _' d% s4 @ c Ptemplate <>
" x- |4 K3 U0 x5 m- B' ^) zstruct SelectSpecialization<void>
' ^$ \& T% j7 O" z- h{
; J/ B- I( s3 |: e template <class Normal, class Void>
3 G, M! b, |2 Z5 H+ n O9 e w struct Type { typedef Void type; };" T1 S* @) [/ z; {) e( i
};
) A0 q% z9 [$ J3 l0 ?: v, t+ ]( F: ~9 F" Q
template <typename T>
! a/ q D9 p, x6 k) |class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable( \8 o% |) ~ H' U+ _" E' i
{0 _8 G- Q9 n7 K
public:
v7 c7 ~$ n# I$ S' n6 V! H4 ] QFuture<T> start()
3 }& z3 G4 p1 @8 _ {- a/ h1 D1 q% G7 m# h# _
this->setRunnable(this);
$ Q+ d% o% f/ e7 y this->reportStarted();* u. A; r4 |: X. K
QFuture<T> future = this->future();; Q( W1 ]: m& C7 B7 r5 y
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
$ t6 T6 A0 F* D2 p8 v7 j5 y! ` return future;
6 `- v* `$ S. e2 s1 t* V }
4 N$ x7 k) _. d1 m! L. @! ~4 B6 F7 ]/ M
; N* d+ V7 T# _; ?. f void run() {}
0 K, J* s+ d2 E4 Z, K" A virtual void runFunctor() = 0;
8 E% Y; Q) t, ^/ e, ~* {};
: G% |' z! x% r P- W( y
6 s9 F$ f8 i1 ]- \0 Itemplate <typename T>8 d/ ~3 Y/ O! S. }' B) B
class RunFunctionTask : public RunFunctionTaskBase<T>( G' }' J$ ~+ S. v0 l
{# \. A: `1 P# Z2 @ T% Z( f
public:
: y* E/ g- V5 ^1 }# N0 v void run()
& l2 G8 o1 p0 ?0 t3 L {# g# j' ?: Z, j( K3 W0 V' g
if (this->isCanceled()) {
1 F4 t, _- [; I, x# |* t this->reportFinished();/ S0 E- R: u" l) ^
return;
6 ~0 y" p9 ?, I. q' @: j, Y5 \" D }
0 W! Y, H* |2 U, M$ k this->runFunctor();' Z0 ?! Y* n& C+ e; v& y D* Q" w
this->reportResult(result);
" z E& G' t5 _) O4 b3 P this->reportFinished();
+ }* _( K0 D# @% k }4 a7 x# p1 G1 w: w7 l' R a+ n
T result;4 a) h1 P( c0 A- F: k. q2 D
};
+ s! Z; W% x. {6 g9 C: n! D* ~# b$ o5 t
template <>6 ]. u) J( i( C1 G2 I% P. F
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ i2 Z! b0 R* M8 j" A{
0 p! ?; V! {0 N1 }$ apublic:
) R( e( y' _* i; G; y J& @6 \) J void run(): y) C* m3 o) f3 v: \
{
& @1 u4 r! K$ C$ }- m: V: _+ X if (this->isCanceled()) {; q1 { T, J% ], a% i+ o
this->reportFinished();
! _3 A$ C5 h1 H5 |7 N, }# R/ [ return;
/ [3 |' e6 x$ c: b F }
+ c: D1 _9 r* r7 i) u& Q! p+ ] this->runFunctor();
9 u3 B6 G7 s% C. k+ x this->reportFinished();
% E' s* v6 a4 x }
; T$ b; N7 @1 O6 D `' D};4 g7 e' m9 E4 \/ l: R* m
1 U: h0 u. d: G! s# A
} //namespace QtConcurrent# [- h8 R) z9 I" _
R1 x* G p% v% A#endif //qdoc% `0 F2 A# S+ H" q$ j( _
+ |4 a* N, q+ q# ZQT_END_NAMESPACE
% e A* Q+ |# [3 g$ H/ a7 B( a+ WQT_END_HEADER m: b; Z/ U: T$ c+ m+ Z. X
# x$ O- d7 g: H$ l#endif // QT_NO_CONCURRENT M% l4 [- ~! u X0 I" V% `
4 n5 V7 U# L4 R% ?* z" a* ~
#endif* o7 `$ r9 w) y, D4 F _
1 B7 i8 S, \7 X. D' z
|
|