|
|
我对syslink进行交叉编译到arm,但是出现如下错误:0 k" y! t% E6 R* j
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- ]) {' `& O, c/ K$ D$ w, S
+ B1 t' b% _9 c! O
这个头文件内容如下:
- ^% v5 n/ W2 l" q9 `#ifndef QTCONCURRENT_RUNBASE_H
! y7 C. @5 d7 _. ?$ U#define QTCONCURRENT_RUNBASE_H
. }; d$ d) l- e' i% U/ z+ r/ i" ` ^
#include <QtCore/qglobal.h>2 @6 n: W8 z# M( I$ X
9 t. S3 C8 D" Q4 M" Z#ifndef QT_NO_CONCURRENT3 M* V N' }/ L, K- q# ~
# e$ g8 ]6 y) [0 H
#include <QtCore/qfuture.h>0 n( z# `7 P) v5 g' {2 D% m" P
#include <QtCore/qrunnable.h>0 A _0 ]8 Z( k( @$ z+ x. ]+ |
#include <QtCore/qthreadpool.h>' V+ [; u+ u" q/ g; B
: R! X- n! h! ~/ @ P
QT_BEGIN_HEADER
+ H: W2 H N3 N7 l* aQT_BEGIN_NAMESPACE
( h" E$ H) N, b k7 U8 D6 k8 V1 \9 T7 Q
QT_MODULE(Core)' ~8 ?, X3 z* ^9 a( J/ G
6 R+ ?: ?2 _2 i' R8 d6 r% Z#ifndef qdoc B* x; @/ S @% p5 Q3 A; U
& S6 ?, a6 _" e
namespace QtConcurrent {
& z1 h- O" a `+ n* N6 ^; @1 Z2 u; f8 b$ C# p/ x" v
template <typename T> |0 F( m9 g6 o3 s' _% Z- v+ B
struct SelectSpecialization+ h* P7 n8 ], z1 H" b' t
{8 w8 ^% z; z" F6 _& A
template <class Normal, class Void>, w$ p& S" C6 a& u4 M
struct Type { typedef Normal type; };( R' C6 W+ H1 k; y! E
};
5 O* }9 i4 t/ j. O) p: P1 N& ?! f n1 ?& y. g! m0 j. I$ e' C, M& @
template <>
+ h N/ `% {3 s3 U, nstruct SelectSpecialization<void>, A2 p* j2 o- a# z1 J1 C' F
{7 C9 [: R: j3 M1 s3 V/ ]9 B" A
template <class Normal, class Void>
# s( ?3 W) L% Y9 k+ `" ^( P struct Type { typedef Void type; };
2 J. I5 ~ l2 ~& w! H- B};
* I: D2 S0 O" f: g- H# a
4 ?0 o- I- G6 L) p. ?8 [1 a) ltemplate <typename T>/ @0 Z4 |+ N* h# _' E- B
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
8 _+ i, \ u; P, `$ u7 R{" u' h) n5 j, L8 d
public:
% \% e |2 Z6 z* D/ E QFuture<T> start()" Z" w p l' r* [
{
4 R2 q d3 o5 D$ l2 w6 t6 Z, Q" F this->setRunnable(this);
% F! N' y# I! f* u7 w this->reportStarted();
C4 K5 S1 Q& q! } QFuture<T> future = this->future();
: @, g5 v; a( q' e8 o5 I) S) w QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);/ h0 Z4 ?# H% N
return future;! m9 A% J) {/ z+ K# M" r
}
0 f0 T7 s0 G5 F# ?# _ n5 _ U
! N0 C( e9 N8 @# y! |2 o/ g void run() {}7 k3 y& a3 H! T1 y. \
virtual void runFunctor() = 0;5 O6 N- {) B! k& d
};2 P6 S% r* o- q1 b
6 D$ N+ z: r. N7 D: _8 ^* i. |template <typename T>1 ]9 `6 @/ W! S. r% x5 R
class RunFunctionTask : public RunFunctionTaskBase<T>8 M7 {4 N3 P' _
{( {9 T& L; Z6 |* z/ o x. M
public:7 E' O% X+ h9 c8 W9 Z
void run()3 R5 m6 A& |+ u R b3 \
{5 s3 B4 b, y* l/ ^. ~, l+ U
if (this->isCanceled()) {
6 {: ^ i- t& O6 r6 [! X+ ] this->reportFinished();/ ]) r# n0 f" _% [2 Q
return;6 E+ q& R) O. E3 \: s8 ?: j
}
) B% p$ T2 q; h/ }4 d5 f& L3 q7 c4 N this->runFunctor();
+ N. |0 p$ k, r9 m4 d this->reportResult(result);
0 u4 h: m. s$ _) W+ Y this->reportFinished();2 c# z1 b# H- \( E) e' k7 F+ J1 S
}
' n* U2 W; A y" | T result;
7 ?, k9 X4 p7 ^7 F/ N- G};/ G, s3 f) |0 k$ o
/ L) a% z" J& K* {template <>
) B. e9 W( S5 |/ i* m# {class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 e3 n, E+ y8 @9 _{; ^2 u. R1 ?) p/ x$ q# C/ S2 Q
public:
+ f& n7 `5 L _/ ~% D; S void run()
! e, s, ~+ n5 s# v, D8 G, X1 g {8 u! d- H& K$ Z0 C4 m4 u
if (this->isCanceled()) {1 u7 h; r9 H* \( l( O5 k6 C6 M! y/ I
this->reportFinished();5 D" K V% e( U
return;
- \' W- |0 Q" t }
& u! t' |1 G+ ^; ]( u this->runFunctor();
% h# n* ?6 ]7 c! y+ i+ Y/ K this->reportFinished();. _6 \& P+ }0 f6 G
}
, [; P( a. ~, C5 p};) Z- U1 K9 P) R: U
& e6 M# L- f& [ N
} //namespace QtConcurrent
' V' ]* p4 t2 {) P$ [& r7 N" @, |, O1 N% Z
#endif //qdoc
3 t' c% |* ^( y* D# W& y, w8 | l: j5 C# B) v8 D8 T4 R0 V0 x6 M
QT_END_NAMESPACE# n- l- {3 V4 Y/ {8 Z
QT_END_HEADER2 H5 _, A) X. R8 @7 m
: h: f" v( i8 }/ Z* w
#endif // QT_NO_CONCURRENT
$ u1 r( q& H8 {( C
5 J/ z& w. \" Q#endif+ \8 y" f# `6 k; l/ u/ \/ H) L$ \
0 h) h; v: y1 k( l8 U7 J) [5 m8 H5 j |
|