|
|
我对syslink进行交叉编译到arm,但是出现如下错误:5 B% n1 Y/ w# l9 T5 s
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
R7 Q3 J1 N) |& S# ~; E8 _/ n) X: K2 F/ z x7 |
这个头文件内容如下:2 s$ x1 d) J/ K7 D2 M
#ifndef QTCONCURRENT_RUNBASE_H
) t; ]" t8 x' y+ V#define QTCONCURRENT_RUNBASE_H6 @7 \0 v4 c1 }4 R' q( K9 Y
' Q' Q3 A6 a; I#include <QtCore/qglobal.h>
/ n6 t0 L3 U" r' R% X( \- J R% Q4 A2 v" _1 M; b; Q
#ifndef QT_NO_CONCURRENT5 M0 {4 t; N* w$ X- t8 z/ Z0 U. B) N7 Y
0 L. E5 E" g; E% E9 f/ ?: H/ E: z! o
#include <QtCore/qfuture.h>% X5 @' }5 a% B& n" Y( o4 b
#include <QtCore/qrunnable.h>" R' _/ e7 r# L. Y9 }9 o6 |$ }- E& w
#include <QtCore/qthreadpool.h>
( `+ o( R- L- O% C0 r$ n! Y h* s7 ]' h" @. l
QT_BEGIN_HEADER* u8 B( V' d Z, g* z
QT_BEGIN_NAMESPACE
( t7 L/ d- N/ b. i5 ?* L: B8 k& C1 [8 I0 Z* M
QT_MODULE(Core)5 \( m0 E9 X/ u) O. R) Y) V
& y3 e4 x" v6 ~; M
#ifndef qdoc
9 z9 D8 m! `$ R: G+ d) E4 r( s0 a. b1 X* G
namespace QtConcurrent {
' o& b1 W! w; k
3 t: {1 |/ G" ntemplate <typename T>3 ^2 j8 K( J- j* i& |
struct SelectSpecialization
- o5 ] ?3 z1 R6 Q# P{
; v, p$ t' y* m/ \9 U: ? template <class Normal, class Void>
; c" c2 o9 ?% o' z struct Type { typedef Normal type; };4 q, B# Z, l) T+ @
};
+ i/ r, f$ N) W% a! h
. Q) _% G' Q8 n$ L2 b' mtemplate <>' M/ N- b" f$ x2 |( b$ Z( n7 O
struct SelectSpecialization<void>9 \! U, [+ [! T: |
{" E* w1 i( o, U+ @' E' h3 A
template <class Normal, class Void>
! [' M2 g6 n) B8 }+ ~0 | struct Type { typedef Void type; };
& K8 [" p- ]3 D( p3 Q};
- k% P& _* @( f. U! C( y9 I/ J
template <typename T>
% T7 t: g( u% n! ?* aclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" b% J) m, F0 U9 O% d; n' [, E
{
1 {/ d' D6 P7 X. n3 _public:
E! X/ v4 E1 a QFuture<T> start()
' J) @8 v2 \" ^) X6 O) h' P {
" r6 {% u) V( C6 k$ c$ V* l5 c this->setRunnable(this);4 I2 K) ^9 k; w2 x. ~
this->reportStarted();$ u1 e/ g% C, V
QFuture<T> future = this->future();- G+ b2 g$ e$ ^ C# U# s
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);9 f' P' g. @" X& g f+ \
return future;# u" X/ M: d9 F9 S+ P% Q; _
}
1 d( P6 y5 Y7 c2 C; e8 c3 S
" T7 b. Y3 K; E3 B* \ void run() {}" o' N5 ~+ ] x! G: R
virtual void runFunctor() = 0;
* k" D2 I; {- B$ w( I$ f% g};
+ h/ f% u3 i) x6 Z! q6 Z# u" L6 f2 s
template <typename T>
: \: C- g$ Q- z2 ?: q8 aclass RunFunctionTask : public RunFunctionTaskBase<T>- i3 B% t1 X5 J) A' ` m: ^
{7 V3 U( p. S% Y- d, H7 p, u2 P
public:
+ f+ l7 p/ @3 }$ `. O void run()
( W; o; Y3 l- e0 j {
$ m7 C. Q5 q) X4 W# |9 m5 k2 i1 E8 q if (this->isCanceled()) {
1 Z0 i( | |2 ~* H' `" ` this->reportFinished();
! X6 Q1 A9 _' ? return;
4 h7 u( x0 ` b" K- k d/ V9 z, P }0 m* b1 N0 ]% ^7 q
this->runFunctor();
# H- Z! o1 G% m( E0 @1 [8 ~ this->reportResult(result);& P2 O8 l& j1 h$ a" F
this->reportFinished();
7 ]6 Q9 W2 r: P1 t. Y a* | }, H5 H% j% Q" j' b0 s m
T result;; [9 V( D9 f4 \. M% f
};) B0 T/ B% l1 l X \; x+ X( e
; W/ p( o2 a3 S3 G+ @$ A3 ]( }* d2 k
template <>
. i/ M# H: W7 J: }# |5 xclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
. [' M, K; f3 f! L" B/ F{
' s- k; p8 p5 a" A2 h1 j l+ mpublic:( m) P+ l4 s" e6 b
void run()
6 D- X- c, r4 B; v4 Y( f L0 @ {5 k) X- K$ S% A: r% Z" l: a+ \) W
if (this->isCanceled()) {3 c% O% O! g& Y" c9 ]
this->reportFinished();7 k6 b0 G; v" b) Z a5 I
return;* C7 o* m k, L1 v0 C
}
0 ?! W# B# f0 D+ i- I* I this->runFunctor();
# \$ |( a' X' j6 T& ^% ^8 f this->reportFinished();$ |* L8 [; G: z1 s9 w
}
6 q. g: F9 S) E};/ v/ y, p# d; r8 ~8 A
. F7 `' |: R6 _' I} //namespace QtConcurrent* W: ^) T& K0 \5 q6 b8 ?
* x$ [, e$ G+ O% {5 J#endif //qdoc5 f! n+ B: n! U6 r
' P' h$ ]% X# hQT_END_NAMESPACE* n$ \/ O4 b6 Q5 \' h. C
QT_END_HEADER
( ^0 _8 l) g% Z- h( g# S p: a7 h
! z; }+ @0 F$ G, m#endif // QT_NO_CONCURRENT, A: Z' H7 s6 m) Z8 Z5 d' G
# H+ ^) t2 g1 R3 R( m! W8 `
#endif
- g, C1 I3 F, F+ i& ^4 b ?; I
: W7 s* l& a. l7 j! S9 C: C |
|