|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
3 |3 T% d( C! z7 r/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
# Q. T6 _5 s& F' k4 h& h! v2 `) V* L# \& W& z% p% m% [5 K
这个头文件内容如下:) ~ E2 S6 L4 m
#ifndef QTCONCURRENT_RUNBASE_H C* j3 m% ?3 B6 J( F1 {# c9 o
#define QTCONCURRENT_RUNBASE_H
5 T) b( |- y$ v3 i* d* `6 w0 H0 w+ p" [. ?! `7 e7 z: B
#include <QtCore/qglobal.h>9 J/ b9 ?6 q' \/ R1 t
" f: c0 H7 W( G; _1 C#ifndef QT_NO_CONCURRENT+ b* ] R% f% r
9 ~; O' ^# e, M+ v0 X# c+ |#include <QtCore/qfuture.h>+ W. o/ |/ z+ x
#include <QtCore/qrunnable.h># j; {5 I" t5 E* A- M c. q. }
#include <QtCore/qthreadpool.h>
: d: X% W3 N3 k: }' p) ]4 M) a: i
QT_BEGIN_HEADER
" F9 j1 x4 O D6 p8 FQT_BEGIN_NAMESPACE- y* Y. Y/ s2 P0 @3 ?
, x0 J* ~( }# ], @' D0 s
QT_MODULE(Core)
( w3 y& U2 C5 M) U* k/ i1 a: X; w. Y
#ifndef qdoc+ m! j% B. G0 M* y+ h& D
, m( C& W0 Z+ r6 x4 x3 k/ z) [namespace QtConcurrent {+ G. `! ^# W) P! I `5 `
1 \3 G/ P) p* e2 D. V+ U* Q
template <typename T>
4 |) O8 ]! o8 ~2 P0 V" F& m% \struct SelectSpecialization; A, L2 I7 b& @
{
( z6 Q0 `$ Y4 @ template <class Normal, class Void>7 ^2 u" P' l" B% A$ G/ m9 `' P
struct Type { typedef Normal type; };+ H3 l( c ~, {. r& {# g) P6 J& _, G
};/ S- y$ M9 l# L& Y5 Y9 `
) d: i: S6 y# Q" ]5 z: B" R
template <>
& U' h- E; C8 z$ j; j+ ?- sstruct SelectSpecialization<void>9 n I/ H; J" S3 ^7 r; ?
{4 o& O; P6 s: g; z
template <class Normal, class Void>6 J3 a9 r3 G4 J3 e! J# B
struct Type { typedef Void type; };$ x) Q: I+ `+ h
};
+ s; ]' s% n @7 q$ E8 ?* M
+ z8 S+ }% o) F4 ]/ ztemplate <typename T>, t' g2 S3 t) B' |1 f% ~3 }) M# a8 }
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
* e m" q: L% I+ U8 e{
8 f/ b# C7 n% ppublic:
3 ~7 n0 Z6 n4 u( o! I: u QFuture<T> start()3 o% ^% f0 ^6 l; Q$ v1 Z$ ?
{ X0 L% n8 X" |9 Q! \
this->setRunnable(this);
1 o! E# i- K+ k, B; i8 y this->reportStarted();/ L+ j5 ^0 E, a
QFuture<T> future = this->future();
) L( [, _/ U0 Z/ Z3 D( A- D QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) H, h8 |% V5 s: G
return future;
?3 y" i' e6 u* X5 a }8 h. R1 j/ g% }) `- G" q
) @" Q. \: J# I y5 n x# O1 l
void run() {}, m4 a# m2 A' p1 I/ T7 Q4 m# V' Y- s
virtual void runFunctor() = 0;+ d0 u0 i6 b/ Z1 K' G- J0 ?
};
& Y M* u3 ~' l1 P5 n7 Y' x) Z" x
template <typename T>
: [' c0 D* M9 jclass RunFunctionTask : public RunFunctionTaskBase<T>
8 V4 q+ N: I* n* Z2 \6 Y0 U7 L; D{
* [( ` w: H, [* qpublic:# S9 r$ b) @1 r5 L; F i( l, r3 p
void run() X& q/ h- O' a5 E. u) C7 n- _2 T0 K
{
2 z0 O0 S5 _" a, h3 W if (this->isCanceled()) {9 A; B* m" A: X3 [
this->reportFinished();3 I& ]; L- R, u' {" j2 p
return;1 ]0 R2 {3 v5 r! ?7 G7 Y5 d9 R
}1 g3 Q; n" [3 ]4 L. ] q
this->runFunctor();
7 ~" G, d' ^/ j' Z5 D this->reportResult(result);' L! k) ?+ w7 o& _ f. L/ ^
this->reportFinished();7 M' _' \' c0 u# Z& W
}
# k0 P2 w& v) H( n T result;
: z: n+ T" r( v3 Y# [};6 G9 L9 F; ]4 P) R3 `
# `* _8 U( W% B8 d. K9 V/ Q+ u& M) _template <>
: \, D2 ]( i4 ?5 mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ @$ }* V; K: ^5 {$ t; G{
" w+ ~' ^" }( f$ N! Bpublic:! }5 X$ q5 G5 N; n
void run(); B j' c1 P/ P
{
4 U; a, `9 M& m) D3 | if (this->isCanceled()) {
7 ]/ h% Z* E; }/ P this->reportFinished();6 g8 k% M# C8 u$ `( W
return;( O! j7 |- R2 _( P1 c! E- Q( L
}
2 A! V4 V- D8 Z0 H9 \: T this->runFunctor();
~- }* U& H& n3 [" r, r this->reportFinished();/ b) X( k) k& Y) ?3 {
}
1 W( G; P/ u: K! Q8 P% ~8 d};
# G+ X/ B8 L: k
8 x' L% e, _% T! }. @. l( s$ N} //namespace QtConcurrent
& O4 q; F; S' r/ @( H$ v$ F7 j. I9 c; j' S! I
#endif //qdoc
# v5 E% z# @0 y3 B- F# y% x7 G' q; P0 N% Z
QT_END_NAMESPACE& X; S( U, C/ C/ h& |
QT_END_HEADER* R9 Q: s9 z0 |) f! e
0 u' r8 D! V, `#endif // QT_NO_CONCURRENT. x& p2 k+ ?8 w+ \ ^0 b# j
0 b7 r1 I+ a2 X# m#endif
- M8 l- y+ F7 T
! K) f0 p$ U: s N, [& ` |
|