|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( ~9 z' s" `) w# T
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'; z; W2 `, j6 x5 q7 L# u; ?
K! L& |! _8 r ]2 j; M l
这个头文件内容如下:
7 V/ P/ F, u+ L. y) }' t#ifndef QTCONCURRENT_RUNBASE_H. W2 z" m" C. y
#define QTCONCURRENT_RUNBASE_H2 z: ~( O, J& z2 q* i9 b7 f( O
+ a9 S/ N: h+ Y6 Q% y0 V#include <QtCore/qglobal.h>
7 e4 q; a0 P9 r2 L/ h5 z `+ ^8 w. C( C: R% G# O. I2 W: M
#ifndef QT_NO_CONCURRENT; @9 c. e B7 \3 |( V" e
, o) n4 P' ]! j, `#include <QtCore/qfuture.h>
+ O! R* j( @2 `4 D#include <QtCore/qrunnable.h>) X8 K+ `3 d% y( L; r( N
#include <QtCore/qthreadpool.h>% S8 g! O8 T" x# G. X
5 P, P% Q( ] C5 Y4 c/ e, ~# J7 }4 qQT_BEGIN_HEADER
3 k5 Q: g, ~; a8 o: ~$ YQT_BEGIN_NAMESPACE
6 Y4 d5 Y0 ^8 C( j
4 H a% e; a- C0 U( W; ?QT_MODULE(Core)
. I( S* m/ F' B1 o/ g! x3 Q. j$ I# }! Q' R% n: A! L
#ifndef qdoc$ B) l. s" b) a7 ~; ]$ R( S2 |; z
' @8 @9 x" S$ B$ a) Inamespace QtConcurrent {& Q* m, }7 e1 v4 j \6 b2 v
% R O! t8 }: S3 u* J
template <typename T>
! X. H% Q6 l+ N4 r" a) g' l P- q; sstruct SelectSpecialization
% f. l/ c& F" d( ~{
$ n( `' T" ^+ G4 d R; I6 `/ n5 J template <class Normal, class Void>
; y/ C% y# r3 \8 e' X# ?* P' l struct Type { typedef Normal type; };
6 o" L2 n9 R5 m5 a};
7 y3 ~, w k. R m5 M6 p4 G9 u9 P! A O a6 T3 Z4 |
template <>
9 k! X& e: @) W0 I$ o/ G& C0 s3 ^struct SelectSpecialization<void>9 }& B/ e; n/ [, _& t5 v; g
{1 O/ k" n6 a$ d8 ], u
template <class Normal, class Void>! r1 U5 X3 j8 Q/ k0 |
struct Type { typedef Void type; };
+ }" |& i' x7 J* M$ `7 A- T};
8 v* [" N2 S5 I. @# H3 E- p
1 b3 `' T! b. vtemplate <typename T>
9 P+ z/ W- ^3 s2 z( B$ l$ J1 b" dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' _6 \0 O9 ~# Q$ }" b
{4 N' h5 z' }1 Z2 j U2 w; W; j: c. L
public:
/ b+ m% n2 S9 M8 z6 u1 l" l+ _ QFuture<T> start()
+ E# N3 {/ p2 e8 ~! L z, g {8 K) Z) a( H; h. [" k
this->setRunnable(this);
% V' P! n1 L" g' f this->reportStarted();- [. b" T* v- S9 z, l
QFuture<T> future = this->future();
8 b4 q7 @0 V# _ V; v QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) y# G) y6 X3 W* e' {% o
return future;: d/ Q& a4 h) r$ x9 D) [
}
5 a# V4 g( k& y/ k o) |( B$ u! i+ e. L" w7 G
void run() {}
: `2 B5 B9 m& \% B4 [ virtual void runFunctor() = 0;
5 G$ t7 |1 [' E3 w4 ]$ A5 q t' t" p};
' N9 `8 u: u* I, N+ c4 E" _* E9 M( A6 Q. @$ F* t
template <typename T>5 x" L/ e. h+ q' M# |: [
class RunFunctionTask : public RunFunctionTaskBase<T>
# s1 h9 G$ h' |4 C' I' x/ o{
. {/ n/ `" B" `. k& H; d9 `public:( I4 ?" y! \) Z( @: t- n. L; p0 q
void run()
7 p) F: u$ f# K$ ~ {
/ i J% R- I6 Z( i, {/ L7 G if (this->isCanceled()) {. H! T0 z' V! N U# k* g; f
this->reportFinished();
9 o0 n9 P% b5 L+ x, _& h return;
7 P& t2 \- v+ `! y0 d }
# U$ j! p& A$ d& ~' u this->runFunctor();
: |# B- M( W, V8 {) Z this->reportResult(result);
0 o& E) g4 z: W; ^& H! W8 ?8 s this->reportFinished();
. u/ W, |. b, L; U }6 e7 J5 _0 I, d6 A5 z+ g
T result;
( y. q& L2 ]% I9 s2 J};
X( b3 m; J! ]4 l5 a! y8 l4 P0 d! V+ n
template <>; U/ k) `7 O. j( `: z- G& {9 Q! l6 }
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
- Z+ G- X9 L' K0 ?/ U! B8 W{
0 n/ ?. |( x+ {* O: S' I6 tpublic:$ G! L7 w+ p7 d
void run()4 F. K/ R( D2 @4 u
{
\; n) J T8 r# c if (this->isCanceled()) {+ j' o7 Z- ]9 h8 E2 H; d" C
this->reportFinished();8 w+ `: S+ x( e; A
return;: g' |, R3 J5 M- e. e# d. ?$ I
}" e- {* R I: A9 j
this->runFunctor();! B1 R$ {8 S: L6 A! X: Q
this->reportFinished();
. h% D3 @5 w% c* p" O }+ Q4 w1 l; G7 w! k
};" ~ }4 T Z* U
5 i; a* p+ `# P, m/ M! n6 j} //namespace QtConcurrent
' s4 C/ N& l+ ?& a$ C6 L( |+ L5 f
#endif //qdoc3 C9 n( G5 N1 W, O0 H
6 W6 g" N) Z# o& A* X( q1 K0 [7 ~
QT_END_NAMESPACE) S$ b& J2 W& ]8 `
QT_END_HEADER
2 W* N& J `$ D( L) p6 ?: T( N
. E4 {+ w' g* C, d6 m# \) a#endif // QT_NO_CONCURRENT f5 ^" L5 m* _! w. ]6 W
6 r& s `/ u* q0 i#endif+ m; X* k" J1 o8 W
; j: z) Z7 h6 _! E- ?% P |
|