|
|
我对syslink进行交叉编译到arm,但是出现如下错误:3 g/ b" J! V/ D- P2 b
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter') y; `7 m8 B: A! }7 Y( M: l% q
) m. `+ H; F j这个头文件内容如下:2 F9 C' |- s; e; W* O7 k; z! p
#ifndef QTCONCURRENT_RUNBASE_H
; ~6 u/ [& x2 U& e4 n* ~9 b#define QTCONCURRENT_RUNBASE_H
& r* ?) m1 ?7 i/ m9 U, R0 |- }2 ^0 W' C( |( _
#include <QtCore/qglobal.h>1 |+ o' T) Z) C1 d% N4 E8 \! X
. _3 T# D% ~- D% h1 a r1 F k
#ifndef QT_NO_CONCURRENT2 P4 r7 f/ r# r2 y9 J4 R5 T# v9 ]% U
: |/ x! X' H/ H/ `7 \& b$ a3 l6 V: C
#include <QtCore/qfuture.h>
- R! [$ i g/ c#include <QtCore/qrunnable.h>5 K9 Y2 p; W0 J3 D) s7 z
#include <QtCore/qthreadpool.h>
2 u" K8 _, \# ?. m/ S! A
( W+ O1 I% {0 L; ?$ I zQT_BEGIN_HEADER
+ P M; m9 M8 D- U$ K" ^QT_BEGIN_NAMESPACE
: P! t. Z* b* ]) S2 X9 y
& E& K9 |$ |& R* FQT_MODULE(Core)
9 W4 m$ }3 O6 @( Q
+ p8 n. q2 V- `& d& R3 O* p+ Q#ifndef qdoc$ p6 D8 S1 Z5 o w
: @1 ^" h& G" R! ]5 I% y! S( Vnamespace QtConcurrent {
. M: s5 N( o+ d& N5 c/ U5 B- U
template <typename T>+ b) l# S4 N. z* b/ x7 m
struct SelectSpecialization' q9 o( y% J9 N" W! J( T6 q; q
{" d, @, n7 z% T7 T6 }& f
template <class Normal, class Void>3 V2 o2 r" H3 F2 j4 f
struct Type { typedef Normal type; };# k: T& G' `/ t- D3 Q9 m" g
};
! s- ], D% }4 s; x' L- z# @4 ]7 o6 M) ^2 K3 x a: e9 M0 i
template <>0 I5 _1 K9 u: g& f
struct SelectSpecialization<void>/ K4 Q' X, }( U y# h$ E
{
' u: W) {( ^, r2 r, N0 ]0 Y template <class Normal, class Void>
: @! o. F+ V5 f+ P/ T" m' I struct Type { typedef Void type; };) I' I/ Z" k; @
};
) h6 g' {% `. [% h# j# f# F
9 X6 d5 _) D/ x, U8 P/ ftemplate <typename T>: V: V& C: r p- P; ]3 p; ~# C% f
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
( z5 z& q: Y4 e( d; w{( k' i' T& Z4 j2 e# a" t" r) x
public:6 ~! ^% a) y9 m
QFuture<T> start()
$ }$ v6 @1 C, G$ r% a5 x {2 m( `8 E0 j/ V2 \( [
this->setRunnable(this);
) n0 C* u0 V" G this->reportStarted();
: C! A7 ~; n* H QFuture<T> future = this->future();
* ], ~) k1 E# m; }9 S. r QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
/ J$ u- o: H- b8 s return future;
0 v3 a, R. c( ^+ D* Y }
) i) k- K1 Y& S$ N, C
0 }, G, H' C% I" V6 F* Z H% X void run() {}$ M. Y4 a0 b; z* }8 E
virtual void runFunctor() = 0;
) k' A5 W6 d" d};! V' @/ a+ E' i) @5 ~" T$ x- r
/ T+ G# ^" Q) j/ k5 ?+ L0 P: k% ]
template <typename T>5 S+ {' X' v* D5 G! M# C
class RunFunctionTask : public RunFunctionTaskBase<T>& s7 Z. z4 o/ d. D5 D
{
6 m- k8 }7 g; Q( A; D* [6 J$ vpublic:& Z3 q, a, ]) i8 N9 q
void run()
, y$ Q0 R3 U1 [! F3 `7 F' X {
$ t7 s9 w, K0 Z, w/ u" ?" }" `4 i if (this->isCanceled()) {
* i! K" ?+ d5 K2 I this->reportFinished();
. n8 X2 Q5 ]8 x! H/ r7 J return;
0 T6 O: m3 @- g# f" c9 \ }. l& s2 z6 b; z) D' q8 A
this->runFunctor();
7 l/ p8 K. W7 x this->reportResult(result);5 T+ U8 [, d& r& w; B; _
this->reportFinished();
% I, }1 a& d* H [ }
% G" R: w; J; }$ F7 y4 u2 M T result;+ v. o, A6 f( N' k" N, g/ O
};/ w. y9 _( |8 O1 F
4 S2 {; n9 [6 H5 {! u4 p% k1 X
template <>
+ c3 z3 F# p! L( ~% _) K/ zclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 ^/ [, c/ v! }2 W$ C4 Y }: d. |{
8 d1 w6 Y8 _% ^public:
6 p: Y- [7 y8 d E void run()3 ?$ u2 \8 N" Z/ K( N
{
& b; k& i$ J7 T7 o3 r0 T; u, W if (this->isCanceled()) {
5 c. X0 ]* F8 N1 X; {/ a& j this->reportFinished();
O+ h, B7 k3 V l: [: `% g# T6 }, o3 ^ return;
% p y5 n( t) B }+ r! `+ z( I; i8 \
this->runFunctor();
! n: O3 S3 t9 j& [0 g, N this->reportFinished();% L$ ~% K4 m* w% s# S
}
5 T7 `/ T1 x+ c# y/ `6 }8 Z};5 }: k# G% B% w. h4 Q9 d# F! J
' x: R/ A+ u8 e, n3 e. C
} //namespace QtConcurrent- D6 Y8 w, H3 J$ `
7 z1 H0 Q2 A6 Y: g/ M: a8 b4 ]6 l#endif //qdoc" z+ U; Q H* i3 g
2 W( t7 M% u' L" _2 E) RQT_END_NAMESPACE8 s6 Q2 F: Q8 C3 ~
QT_END_HEADER
# L7 L: c' |& ]9 M( K3 [& D$ o2 ]9 [% H; R$ }) e/ ?0 f: U
#endif // QT_NO_CONCURRENT
, F z1 F- H* I9 T; g
8 o! i+ B. a+ U5 X/ V#endif) W# n8 Y9 W$ K' c& T% _4 C! M. l
0 {+ n% v7 a* A6 {, |
|
|