|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 @/ r+ r6 w3 h
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'9 T5 \0 i1 z* {0 i0 m
& m+ Q; ?: ^+ m' d4 {) U4 x
这个头文件内容如下:
) o2 s8 `# U/ n2 l" k" S8 r+ Z#ifndef QTCONCURRENT_RUNBASE_H0 g# F" k. i8 R6 q1 ]6 {% P( h5 U
#define QTCONCURRENT_RUNBASE_H
. j! P% f( H+ r0 F1 j$ E% R$ o% b k' @% |
#include <QtCore/qglobal.h>
( a, n$ o5 |5 n" s! T% F
% N l2 H+ j0 G! {: k#ifndef QT_NO_CONCURRENT
2 U, c8 J3 P) W4 j ` V7 C- l1 s z: T1 }$ a6 k" T5 }1 Y
#include <QtCore/qfuture.h>$ _; f) }8 E: l" o( c& J
#include <QtCore/qrunnable.h>* c( ?, C: f% l: |
#include <QtCore/qthreadpool.h>
. t1 Q- G7 u: T9 ]! J1 I; c6 ~
; B" I8 R, N0 EQT_BEGIN_HEADER
; f/ A3 i9 I( [. U5 E7 JQT_BEGIN_NAMESPACE
( V/ o' D9 ^8 s7 g: U# h/ r( d. u# D Q
QT_MODULE(Core); R( `. V8 K3 k5 e+ ~$ a5 q
8 ~. t, q1 t, x$ X: c! M7 @#ifndef qdoc
: ]. }; a' d2 d! U( \: d6 K" D$ |) J% j7 |$ J* W$ V
namespace QtConcurrent {. \, A; \- P t7 f `; A) D
! C2 o* Q" u# W: j: U! l# ~& o
template <typename T>9 G& R+ G7 x( G& u
struct SelectSpecialization9 A+ e# F* \1 q# `5 ]: C
{
5 s+ v7 K1 d7 k/ F2 O( G& n template <class Normal, class Void>
# U2 B$ @ g3 o u struct Type { typedef Normal type; }; B e; \% ^8 Z7 p" K+ S
};
! A/ K$ |# d6 E6 \$ P
7 O7 M( f) x2 ~template <>
- R2 w& I4 C @2 qstruct SelectSpecialization<void>
3 b# P8 W0 g+ f: q5 {6 `% q{
% M* F2 e6 y! F) j template <class Normal, class Void>
' v/ ^: M% O% \6 P struct Type { typedef Void type; };( {/ `* M# k4 x9 o# ?6 O/ }5 s
};5 Q/ n5 J0 ~3 F4 L
7 d1 U) H# \# A Z$ T0 M0 t8 S
template <typename T>8 u& ^% d& ^3 |1 K6 M
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 C. ~7 N | R5 Y% e0 y5 ]3 [! q* |{3 P" @. R: D" ?% j. k' s8 b
public:
. [ l8 |0 \: G0 r1 z% d4 q% {* E4 { QFuture<T> start()
6 }5 t1 u: A9 i6 N- p% t {% c' d, b( ~% H" I' S
this->setRunnable(this);2 V! {6 ], D" m7 A
this->reportStarted();4 }+ c; r3 _! R5 ?4 {; f/ T
QFuture<T> future = this->future();5 e1 U( f3 _* x$ Z1 c# |! }3 B
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* V+ ^3 C% x3 N return future;
2 n! c2 R0 O/ i9 U% k- ~ }
% E6 X% W6 g( |. B& [4 r& V) u' x2 p8 r
void run() {}7 q" C$ i" T2 K6 z9 L
virtual void runFunctor() = 0;; b) h/ ` } H! N; b, g
};" }& o! J* y! E9 C% ~
5 c! t8 E4 A0 f. S: ~) J
template <typename T>
, z9 `# O$ x1 D. |" m0 i2 c$ v+ _class RunFunctionTask : public RunFunctionTaskBase<T>( T: @2 w Y3 F( I7 o0 m* c
{
5 D- `+ S2 J$ i3 j1 Z2 c/ ^) }public:: N5 Y. O+ G; L2 o/ S) q
void run()
% U3 U' Z6 K; _/ a$ Q4 C {
# h' F0 }, i. N if (this->isCanceled()) {
. _- K- ]% A8 V! ^9 m this->reportFinished();
2 X5 g5 ]+ A/ ]+ J8 S( d1 Y- O9 x return;3 T' p( q+ }- I6 x: _
}8 `. m8 ^$ I! r
this->runFunctor();' H2 I- R# P6 [: ~$ l2 ~2 A$ N
this->reportResult(result);
7 P1 K" |' T! ~2 g+ Q this->reportFinished();! s4 Q& C/ M9 R! `
}: R' N$ p3 z# a: i4 l
T result;# J% J8 j) g2 r* s6 h
};" ?, Z, c( Q5 A0 }
& h* b5 h+ @6 ?* \& Stemplate <>
X8 n: ]8 [1 g8 g. y; N% `9 r8 tclass RunFunctionTask<void> : public RunFunctionTaskBase<void>% L2 f+ Y) b. Q$ \
{
% {7 `7 ~; p. N1 N2 p8 t) Npublic:
4 p, s) n+ M' z* f: T0 T void run()0 [$ N$ V8 o5 q8 b' h: T
{& T% i6 ~% p- t1 p. e
if (this->isCanceled()) {4 ?) q+ o, n+ { o' |
this->reportFinished();1 `7 u. h1 L8 d' @8 b/ U, d
return;
" _# h: g' ]( T) M4 ? }" E) H+ A* s- G; g) k
this->runFunctor();2 b- q J; ~& _$ q j
this->reportFinished();
0 i0 n8 n0 I5 d2 {/ Y, w: W }
: L5 F9 {0 O) Y};
4 W M- P/ b* }* z2 }0 J2 H: p H$ T; b( E
} //namespace QtConcurrent
$ A( _; Z/ O- U: q1 ^# F# y$ b2 @+ D1 y9 H* P% M' o
#endif //qdoc
`7 R) M* X( D, r0 a+ U
. S' n8 f# K6 yQT_END_NAMESPACE$ b L( _& ]; p
QT_END_HEADER
; D2 }% H4 L5 q; _3 B8 v- }/ i; [, {. ?. k
#endif // QT_NO_CONCURRENT
% B( w7 f$ \; i' B% r0 `
8 c% B% L7 L; t7 A; o; e. P v* J+ u#endif, T; S2 u7 N4 M+ \' Q2 V
: X9 K1 T: |7 O: _
|
|