|
|
我对syslink进行交叉编译到arm,但是出现如下错误:' i4 k2 H' u- ]# _, g$ z4 V3 Z
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& J* w$ X. B9 Z( e& j# g) Y9 @+ b) z# T& {
这个头文件内容如下:
3 }% E2 N; V4 R8 Q#ifndef QTCONCURRENT_RUNBASE_H
* O6 R; T4 p, P* D g. q#define QTCONCURRENT_RUNBASE_H. R: v6 |) t+ _
! ^# P' a7 N W! `) w#include <QtCore/qglobal.h>
( x# G8 \8 B3 y4 q- \/ U& `/ J! T; M9 A
#ifndef QT_NO_CONCURRENT- _( A- `' k# r/ Z m4 S
) m7 O! W; C- v! |1 D& _# `#include <QtCore/qfuture.h>3 ?. z9 Z$ s8 J, t
#include <QtCore/qrunnable.h>( z7 B# n/ V, {9 a0 S4 T8 Z: \
#include <QtCore/qthreadpool.h>
' I: x _- e: c* N7 @
& t" T) {) A8 |QT_BEGIN_HEADER5 H8 E1 W' D, {: k5 l6 I
QT_BEGIN_NAMESPACE
5 k- z/ p w6 a9 M% K3 q0 K& s
M" d. r9 W( [8 q4 HQT_MODULE(Core)
( m6 h3 ]. s# d- ~/ G0 g! o+ {3 Q. Y- K2 N4 X# I3 U
#ifndef qdoc& Q; ^: W' H/ ~: {5 b
# `, g7 j6 e5 x+ h5 a6 t" {
namespace QtConcurrent {6 n. j4 v5 Q; }2 Q
# U/ X3 b; z1 e
template <typename T>) G. O; X1 A6 O# v3 V4 ]
struct SelectSpecialization
3 T9 W- R0 O, K k{
8 g1 b% O/ t. J* \$ K" B8 x template <class Normal, class Void>' Y7 D3 j N! W3 I! {2 Z
struct Type { typedef Normal type; };
9 p- |( x% o, i9 f. q}; p: K0 ^9 F4 u5 s4 m# @6 `. z
+ a8 V- {3 t: `* t# q3 mtemplate <># ^- a9 w; W( H9 T; |
struct SelectSpecialization<void>9 \7 X7 [1 [6 O$ B
{
1 g. f W, q5 H: b template <class Normal, class Void>& R, V5 K% e- X, ~# A# d
struct Type { typedef Void type; };3 }- f- @4 ~% S) L) U, Q2 }
};
* ?/ l; y6 a2 p+ e
- [( i# ]. |2 X1 T2 X, u- y' etemplate <typename T>
. ]0 z. f" \2 f! P, l5 |" A; v- @) aclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; W: t7 g. B7 N' U- `. s5 f. D
{
. {- |$ P( V) N P+ \, i" |# h. xpublic:
! b! l7 Z+ }, z QFuture<T> start()
) H+ B& `- Q, }) P0 Z {+ U6 g O/ n; Q% Y: ], s9 y0 {
this->setRunnable(this);3 M5 U2 V+ i3 B; I/ j& u5 V5 Q/ d
this->reportStarted();
* m- Y9 k x" e6 L0 w QFuture<T> future = this->future();
% q5 V0 Y/ u x; j QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; F* [ w! g7 J" l6 o4 T( f J
return future;
3 a. x2 z4 K* y3 k( I( L' F }& h2 S5 t4 |/ D& [
1 f$ K/ g: f( v4 }5 E
void run() {}
" P+ o6 J" H6 n+ l$ y virtual void runFunctor() = 0;
5 X3 c( O9 O/ s/ M ~; s};+ |+ t( l! }( f: j" ^0 P9 M* g
1 h2 M1 v/ q4 A! L7 ~- i
template <typename T>
$ ^6 y- d2 P+ Y0 \$ K. b# Uclass RunFunctionTask : public RunFunctionTaskBase<T>
+ ^0 O! Z4 i3 p7 Y Z{
# Z% w4 b5 M* F( H" O/ E* e( kpublic:; G* w. Q, ~: F! S: M% i: j
void run()
8 N, t! W& {% B( S {
( y) Q4 v0 |$ I/ D) l$ [ if (this->isCanceled()) {
3 u4 a- h, Z6 o9 o( w this->reportFinished();
. g7 K U1 n% T: _ return;7 ^2 b' a! o5 i0 g% T4 o
}
- e) F8 l; k0 S r1 L% c% P this->runFunctor();
3 e8 _* c1 t3 `6 P, W3 S6 a/ L this->reportResult(result);: N. r" n( c0 q8 N r" G
this->reportFinished();1 T/ E' W' o, N9 b9 m. k4 o
}
/ y$ d/ B8 Z0 e$ ]6 u T result;
% _8 k0 ~. T" Y8 s& g: r0 t};+ `0 q$ `& n! M# N
/ I/ f7 M, w0 _( _template <>
' K; [0 p6 ~ ^3 Q6 s3 @$ |class RunFunctionTask<void> : public RunFunctionTaskBase<void>; x% H9 M' d7 {
{
: V# j% Q* i) K3 q) Spublic:
- H- L4 G0 Y% c. D: j void run()
+ i& a" O2 I2 g& r) i9 n {0 r# F( S9 w7 L) o
if (this->isCanceled()) {
1 f1 A# T4 }7 J/ d5 N4 I this->reportFinished();# z6 h+ O5 K- K- O! i
return;
# t8 C: x6 _+ ` }$ ^6 Z. c' I0 Q0 ~& p8 [+ M0 h
this->runFunctor();) q. u8 i2 R+ ?0 O
this->reportFinished();
8 k- I) S2 J- l8 ^& K- Q: b }* p6 K t f/ R' n6 ^+ _
};9 w3 `- k, g; G! |$ W. o5 ?: a0 N7 Y7 D
* U4 C b, X3 B9 v) F. f. f9 }} //namespace QtConcurrent* k- _- o& e! r) z* a% i4 B5 i* b+ c
. D' Y* A6 q( Z) ?#endif //qdoc
. ]3 P- F* }% o+ [6 M9 z* o4 [ o0 h* F9 S
QT_END_NAMESPACE
6 }5 D$ C$ c. }- o9 LQT_END_HEADER% R* d, D* D* O9 b3 Q( R7 q
' d4 O6 w$ w5 \* Z
#endif // QT_NO_CONCURRENT8 g9 u7 J9 W+ N" U c
- m$ Y3 j. O" D( ^) Z( U+ L#endif
' w j0 n o! C/ R4 T
- G2 x! z/ L7 L0 @ |
|