|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- P1 ?* v. X, Z, z0 V7 Z9 i3 u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter': i" N5 E3 T+ V) A% k( T
' A9 X4 y% z! Q1 l
这个头文件内容如下:8 n, q O3 p! n
#ifndef QTCONCURRENT_RUNBASE_H
/ u4 v% b( K/ _6 X/ c/ d L#define QTCONCURRENT_RUNBASE_H A. _% u8 i" V( v! o, e2 V
, \6 f$ l# C, z/ O; M! m: d#include <QtCore/qglobal.h>
# e- p: u1 i, c$ I0 ]- @
6 Y; |+ v2 g) [* ^2 n9 n#ifndef QT_NO_CONCURRENT$ w5 J; X: Y, o
" w, A7 k9 F7 w: J0 H {8 F#include <QtCore/qfuture.h>
( o8 G( O/ m. Y Q#include <QtCore/qrunnable.h>4 {' w6 W }4 g2 N3 J: `
#include <QtCore/qthreadpool.h># \* _$ ]- J( U" e9 ^( ?" L' }
3 c* a: X9 Y$ D2 `
QT_BEGIN_HEADER
7 q$ d; e! i# N( ], A) _7 O7 ZQT_BEGIN_NAMESPACE- @& D( x5 T0 }$ U" M: Q
* ]- Y- d# l/ x1 `( E5 W/ J0 ]4 T, yQT_MODULE(Core). p* h7 _# q f. U9 h# J
1 I, Q3 H9 u! l7 ~& i" r#ifndef qdoc/ V" U* M A* i) R+ T }. S T8 K
# h8 d R: S6 A* Hnamespace QtConcurrent {7 {7 Q; ?% D% f. M8 k. k9 r
5 i& r; ~" u1 R" X q% I
template <typename T>
; H) N- m9 y( q$ ~struct SelectSpecialization
% I4 ? a4 o/ r/ P! C{
3 d) M( h! C5 K template <class Normal, class Void>& O/ a: R) _) y" u% y" ]
struct Type { typedef Normal type; };9 b& C' X, n' {! v& U( m( j( T
};/ \" c$ Q7 \# o1 N! Y$ u( |
. ^# \1 U; J G# _1 U7 Stemplate <>& P' _- u& ^( T r8 F
struct SelectSpecialization<void>& r3 X, i0 E1 s( |) B
{: i7 A3 j5 T0 f* k
template <class Normal, class Void>
# l$ J. k Y7 S% N struct Type { typedef Void type; };
2 ]% l) m7 l$ ^1 j' e};& J' x L5 f& [
. x2 w# X7 X/ ]
template <typename T>
+ t# F! ?( \" [* a8 gclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable/ j% d/ d! S6 w( q
{
; X1 b$ @; S$ x0 L7 ?5 u: Upublic:2 c7 `/ S0 C6 j- C5 O
QFuture<T> start()
; o8 O5 N/ O! t7 X; |1 \' u, Y C9 S: T {! t8 M# W+ }% v
this->setRunnable(this);
8 u- y6 c# m4 k this->reportStarted();6 B6 m2 C( d7 ^% W v y% W+ }: k+ H
QFuture<T> future = this->future();( a1 E4 P, w; i
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);$ m, |# z6 p* A: v' `
return future;3 X) W# k; l6 q9 @+ o: f
}
; @; x% b! U* S; E8 l5 {) n* h8 a# j* N# T$ k% O) z
void run() {}# `0 g4 M3 Q( \% ?
virtual void runFunctor() = 0;+ B9 Q X: S, B
};* i& t5 X5 U# I: C* D
$ l2 R4 m. s7 q! \* i- z0 L5 k2 vtemplate <typename T>8 j! E. C* l& E6 D+ x2 Q7 P; L
class RunFunctionTask : public RunFunctionTaskBase<T>
9 f s) Q/ w$ N, `6 m{
8 J- {) q) u8 \7 k$ jpublic:8 d6 R5 A: O% Y' r& l6 j
void run()
, I$ p8 H% g+ A0 R {
5 ~+ M1 b% o! A9 g, d if (this->isCanceled()) {
8 x5 g' n% [0 w L# { this->reportFinished();
7 `5 }! e% r6 D4 J' X1 H3 j return;
2 H. n: Q' `' k6 ]. e* _ }3 K( _8 Q6 [$ N6 z0 A
this->runFunctor();
# m4 i; W1 F$ {) j this->reportResult(result);
; p' }) B2 G0 P s4 I2 w* L( { this->reportFinished(); [9 Q' I, I9 t
}
9 B' p2 V; }: t2 } T result;) r% _* u! P! z: P3 `6 S D+ W
};
+ n0 T- {$ v- t- i' B Z8 W) j0 \# G, c- {
template <>
- t8 H, j8 a& gclass RunFunctionTask<void> : public RunFunctionTaskBase<void>7 z+ S" h' s. w( D
{
9 H1 v0 g; a9 A/ N zpublic:/ V6 L5 S3 }; X7 G3 o0 u
void run()
( N% B' b7 }2 t- c7 S- e {4 L l7 j) D1 u# ^/ x; Z
if (this->isCanceled()) {
) q- U2 s( [; F8 g this->reportFinished();
8 Y8 K, K7 `4 I) L2 R return;7 z; J5 L0 I: z
}4 G. Z" r3 ]9 e0 H$ n/ H0 X
this->runFunctor();
; c% X; }. l/ r Y+ S( h: _$ z this->reportFinished();
5 p1 K' f! F* D { }) l4 W2 Y7 X: O% X* v
};
( o9 ~" Y8 o0 {5 C) A
( m1 A1 d# Y V( q. t} //namespace QtConcurrent1 c+ i9 O* h2 M- N- t" t g, d
' x r( w/ N& w: G8 v0 V& N#endif //qdoc
0 j8 P6 ?3 w6 y+ ~
% _' K. @6 j, x' x' w1 }QT_END_NAMESPACE
' q9 {) J" W# S0 D( EQT_END_HEADER( b0 q6 T, [6 a. ?8 `$ N
p( W' `+ K$ m J
#endif // QT_NO_CONCURRENT
! H( U7 y' o# S( s) }3 h" M# D z, j+ m. W! w/ B' f
#endif
# N+ M) j7 H2 \1 v9 p8 j: v2 U$ T9 R7 l8 u; q! o& v
|
|