|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- v! b2 I% i+ I/ z( N/ e" b5 ?, e
/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# J6 ^! h: ]1 `; K- _7 x0 S
1 i7 z, U* y6 c- N1 `5 O
这个头文件内容如下:6 S/ I4 j f; W# l3 W1 O
#ifndef QTCONCURRENT_RUNBASE_H' T3 _. {# k2 o
#define QTCONCURRENT_RUNBASE_H, g% T4 s% F# D W v
, |: h2 B( r7 F; ?/ i#include <QtCore/qglobal.h>0 ~- v+ F. z- D( j8 `7 j
# z* N' b6 k- L- R#ifndef QT_NO_CONCURRENT' u- Y$ f* V$ O
5 U- w }+ l. q( Y3 A# Y6 `$ Q
#include <QtCore/qfuture.h>
, H a, @/ R* L6 q% T#include <QtCore/qrunnable.h>
/ Z$ R4 a7 J# u#include <QtCore/qthreadpool.h>/ P' B' g6 @" t6 m
/ R) m L/ [4 w% b' qQT_BEGIN_HEADER
7 E- v) ?! T3 @9 ]$ S7 E$ h) B( ~QT_BEGIN_NAMESPACE
5 V% d! J/ J6 \3 @# e
4 `% X: c2 R& d$ ^4 {QT_MODULE(Core). U& I, G# M' R0 |
# F$ Y9 x* D6 ?1 m; o9 v# F
#ifndef qdoc
; U. V* {0 L& I" l, B( b @
8 x6 K. Y& L. L2 X0 Q' ]( J( Enamespace QtConcurrent {' \* ^ ~9 m+ z4 w1 }- D, [
- ?7 F3 c6 Y. x5 v$ {
template <typename T>5 M1 V. C+ A1 _
struct SelectSpecialization
/ Y- i+ L2 N8 T! [{& O6 S3 B. [% F& s/ H; B
template <class Normal, class Void>: q% y: U8 t4 |$ g5 ?
struct Type { typedef Normal type; };
/ r- g" g* S) ^* L8 H};; R% [, @1 l' H% o% |
1 {6 e m: h& ^/ J/ Z4 C3 I
template <>/ `; ?* ], N$ L/ u( i
struct SelectSpecialization<void>% F7 b- \- ]7 l+ z! L5 T
{
2 G8 H- n+ W7 F+ `& P8 \* E8 {3 w template <class Normal, class Void>: ~" H2 J2 }: u: b- t
struct Type { typedef Void type; };
+ r4 \4 i) ?: @$ v' b& p};, u) i. Q5 [4 x7 H- v
@$ K7 }: Q' h* E1 r% {0 d+ ?# M' I
template <typename T>
. g1 c: u9 `4 I& X0 dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: Z; F0 `5 Q: a# Z; D6 l4 ^/ {* G. I$ r{
$ G' }2 o, |: R( ~2 f) ]public:7 b, w5 }- a v
QFuture<T> start(); @0 W( I) e o Y- Y) L
{
: P# R& m1 q1 o6 H( s this->setRunnable(this);
( m5 y$ m" p# n3 d( q$ e this->reportStarted();" z: z0 m/ ~- D+ M, |
QFuture<T> future = this->future();) L* j! k3 I9 x% P
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);* S( n+ d1 V; O: d
return future;. ~& Y* ~- z( a" ^% R8 \' t+ H
}, M3 Y- t* b3 Y% n
0 n, E" N! h1 v8 [8 f8 V void run() {}+ C: I( D" P1 h* [% u' F
virtual void runFunctor() = 0;
. g: n) j& V G% o& l( H};
+ c9 {" j D3 q! F8 r' [# l! P. H; A/ D0 r
template <typename T>
, ?7 Y7 a1 Z5 p, M1 k& ^1 Bclass RunFunctionTask : public RunFunctionTaskBase<T>& T' V# U/ ^/ ?' [$ A
{ G2 C& i. y$ R' o9 |$ Y
public:
) C9 S' z& T7 T, c* S1 g void run()
$ W# o/ K% M2 N5 j {' ]% ^ j( y( ~8 i) r1 N
if (this->isCanceled()) {
9 c3 m( b7 Y; b! F" H this->reportFinished();
* a! ~& o' D; y9 [; x* ^5 p return;$ L5 [; j: a0 n; a3 q
}
* w8 [* v" p W6 \6 b# H1 } this->runFunctor();
8 A5 E. x4 R& K) D( A this->reportResult(result);
2 V7 M( t- @/ O9 j this->reportFinished();
( w( N" Q- s- I) b! I8 i3 Y }
$ r6 d- M; A1 w- J( O2 f- R T result;
* X8 b y- c7 Q' T+ R+ N" P3 b};
& O n/ }1 j H6 f4 |- l4 Z9 e" w4 o( }* W- \4 ~
template <>' w5 S/ O* s6 \) |* L8 ~1 Y0 j* {
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ F( W2 ?; o$ F) _' [4 ~{
% Y# Z# _' K1 A& f2 Upublic:
; r) {& @# Q2 R5 A/ Z9 S4 ]' B void run()
, k2 K( b( c/ Y4 L) w {( d( F- ]- V( B# H, E3 `! S
if (this->isCanceled()) {
* w9 N. G1 e# q9 b2 z$ g this->reportFinished();
" Y& q: V0 |9 I8 o6 p: X return;/ }: X- |) M0 s" m. n* w
} q4 v; r, X5 y0 g. e
this->runFunctor();$ {2 S5 S' z2 @* x; A
this->reportFinished();
1 Z$ o, r* z) `) b6 d }
: J- B1 E: J W2 V0 }* ^$ |};
! h1 f+ e) A% [1 |
6 @7 [0 t$ M3 X9 B} //namespace QtConcurrent
: u# K8 m. Z5 M" D
% F( z. N* `. J3 [1 J- t#endif //qdoc
' J4 |( w& }% [5 m a5 w' @
6 {& j2 O$ f& B0 b( S6 d2 lQT_END_NAMESPACE
! T) e/ u0 O% w2 E8 ` EQT_END_HEADER
& m1 N) f7 k0 }$ k. p5 F/ s8 G" s+ J/ J; ^; N; T; S
#endif // QT_NO_CONCURRENT/ i/ v9 ?* M0 s; ~) g7 K7 U r: [+ p
' {; t% K) I6 `: e#endif
/ i% h. ?4 ]' e! ^+ @8 ?. M; g% R* C- x* C, b: z% q* ^/ c+ i
|
|