|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
5 t$ e! D: n, S$ v/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: C$ `1 F0 f2 a8 G+ Z
+ |5 R: @+ `( f5 l这个头文件内容如下:
' q( q: Y0 _6 P( f2 K( \: w' K$ O#ifndef QTCONCURRENT_RUNBASE_H
! x6 o8 \1 h' K#define QTCONCURRENT_RUNBASE_H7 x3 e7 y# W0 [% _' y
( e% ~$ Q) F2 H) J#include <QtCore/qglobal.h>
3 x! s0 D+ n4 l" S+ h& J: K+ g' J8 X! D6 z
#ifndef QT_NO_CONCURRENT
3 ~( q7 c1 v/ Z! Q! L% ~# s1 H
( v+ x' R& Q5 p. a! f# N" I#include <QtCore/qfuture.h>
, O& L7 W7 f" }3 f#include <QtCore/qrunnable.h>
( l# U7 n# Q7 t9 P#include <QtCore/qthreadpool.h>
6 J6 L! d( z2 [) }5 a4 U/ W$ a! }- U
QT_BEGIN_HEADER
Q$ @( ~. F! z7 MQT_BEGIN_NAMESPACE
' i: K4 |2 B; l" B( N+ ~8 g/ l% v
7 g5 C) Y# _1 l' f: E+ EQT_MODULE(Core)- B& R. ?, X6 r/ {4 G
# r1 c( V2 e# M Z1 y+ N#ifndef qdoc$ I! B' k2 V! [' G4 e( c3 x8 S
) {5 s5 [0 C- T: Z2 gnamespace QtConcurrent {
% e/ h4 b$ r, N4 Q& G: Y1 @2 P5 l/ D* E
template <typename T>
' I- {/ _5 Y) Q' |struct SelectSpecialization
" V4 {/ [$ V$ P5 N8 P! |, O{* J3 w8 Q( M% R# z) E
template <class Normal, class Void>/ K' B; x0 t4 C- b' O0 r
struct Type { typedef Normal type; };0 V7 q; U$ O q) V
};# M6 t- z W3 Z2 `+ P
! B1 g% J( |( S9 c# i" M) j
template <>
. S3 Y6 w) B6 |$ u( xstruct SelectSpecialization<void>
0 E% b; _- A% {5 j{
3 a( }1 v% {* p6 a9 @ template <class Normal, class Void>
3 u% m C5 v/ K1 s) P- ~ struct Type { typedef Void type; };
5 A3 u" Z, P" n};
: h1 L: b. t- n( k6 [
1 p N! @2 A$ E `4 b. vtemplate <typename T>+ E& B& f# h5 g+ ?$ W* ^- p
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable n. U. J o: ~( E& P; C
{
_% j5 ?/ P9 O# T6 X; Ppublic:
9 K5 X- F/ ~& N+ Q/ D2 U9 f QFuture<T> start()
; V/ ]' r6 O8 X& E/ q6 u x* A9 f+ {. q {
# @- T4 L; e; S! ^3 I4 u4 l this->setRunnable(this);
/ h. o0 L) L V% v this->reportStarted();
5 u* W! z* h: z- f8 y1 [ QFuture<T> future = this->future();2 U: O. L \" O# `5 q |% F; f
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);2 s5 [; Q6 c; W7 w( R2 |& n
return future;
+ ]# R$ s+ d2 `! k; t# |1 n7 ?' ] }
/ f# _+ t0 N. J4 F( H5 e( N' r0 G& t& r
void run() {}
1 k: F$ I9 f ]1 P virtual void runFunctor() = 0;* M) L" ^, `& C1 ?, \) T
};" X, k0 w9 \& d8 @/ K# W4 _" }9 C
3 D! f/ P7 T# {' \, M7 F: o
template <typename T>
5 G9 E, Q5 `/ h5 e# n% _9 Qclass RunFunctionTask : public RunFunctionTaskBase<T>. h3 @3 u$ \* h8 L* a
{
: ^7 w' @0 ~9 W8 A2 Jpublic:
* I) y, n; p; u+ d& G void run()
. l* R9 Y1 E, }2 \& m6 L0 Q {8 n% W+ c7 A" z
if (this->isCanceled()) {9 n% R. q1 a2 b2 R7 a
this->reportFinished();
6 i$ o5 v0 M( n+ `! z0 } return;6 K- a0 R B" t, Y( p+ \0 d' v
}
! b. N7 S' v3 q$ z: Q9 j: z1 D this->runFunctor();
2 M$ Q: h! W/ Z% \/ t this->reportResult(result);
) R; W6 _9 n5 w- j {" f, i. j this->reportFinished();4 T- k) D( d- J7 m, x3 o
}
- t7 n: [5 `1 z' m) x T result;
: _4 B; s% H2 U7 U}; w J3 t6 J z) J/ L0 {7 A
9 S9 {7 N3 o6 i3 T5 ~( P" R2 _
template <>* t4 E- U1 R2 V) U2 P% M h
class RunFunctionTask<void> : public RunFunctionTaskBase<void>; m' d4 P% _7 h. |, [/ `
{
9 I1 v5 L! C" Kpublic:
7 O7 L# _ M% f void run()3 G5 C, o0 k4 d6 r
{
" P6 t" d! Z! G! R4 \: k9 v if (this->isCanceled()) {& G- }& w: C9 L
this->reportFinished();
) [/ U; G7 O- @# R* f: u return;
1 \5 [* D. F9 R& a }% p5 T& F, X5 q, v1 B3 K7 A+ @
this->runFunctor();( V+ A( x. W+ |4 {( P
this->reportFinished();
- I- }; q7 V ^* P6 B0 g: v$ | }
" O# A e$ o0 G) I* b( X. {};8 B4 w) n) w, F; p6 u3 Z
/ j+ H; N+ \# n& p P$ w( U
} //namespace QtConcurrent) K, T, V0 }; T) U9 L5 x
8 g$ ]' t' n" @. f/ Q#endif //qdoc
$ c9 ~" H% q$ Z& m9 k3 |; W
1 V; h6 \, `3 H4 v( jQT_END_NAMESPACE
) C. r$ f( \7 t" H) c- [$ t3 FQT_END_HEADER' e2 S" w. k; E; T; J9 X9 z
* U2 L+ A4 |4 c' e3 v#endif // QT_NO_CONCURRENT
& K5 x; a0 ?$ ~# v5 v! E1 y9 y
! y: }+ e; m5 N" H. J" z#endif
. `# v' y& F& |4 A, Q
+ F9 O3 S% a: s% b |
|