|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" h2 N) F; A" ~% i& 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'
7 z& ^6 H6 Z/ g' Y" [& L! j9 S s* U+ ]# a4 S- z1 N
这个头文件内容如下:
% `5 ?: o) c5 F" v8 ]. O: c! n7 n#ifndef QTCONCURRENT_RUNBASE_H m$ L8 V; y: ?
#define QTCONCURRENT_RUNBASE_H. _. h5 W5 O7 p2 a/ d3 m- a( K
' I, p* K# ~, r9 a% v! t( O$ j' J4 X#include <QtCore/qglobal.h>
3 D: {- ?0 P" \& {" j7 F& o) S: @% c! d4 p J) p! u: }& d/ O
#ifndef QT_NO_CONCURRENT# E; r. n2 ]# G. _2 N
% a( e- z4 z2 x$ A, P
#include <QtCore/qfuture.h>
% B$ Q% F( T. X. q3 v. C: j0 P#include <QtCore/qrunnable.h>
# e2 ~5 f" N7 \7 i, N#include <QtCore/qthreadpool.h>( l* j8 i$ O& f4 H3 z& O4 B* _
, I1 e3 I2 ?0 j5 x. A0 B" i0 p' l
QT_BEGIN_HEADER
( w* y1 e/ c. kQT_BEGIN_NAMESPACE
) h% P; T# C6 |9 ]
% S Z/ ^/ }" N! W4 h/ j( rQT_MODULE(Core)5 E; |$ t( v3 A0 ^+ ?
7 h L" ]% ]# w* q8 G#ifndef qdoc$ G" G6 v, J1 O* C% Z! Y) C& \
7 {; Q0 V& Q0 G; t; M7 n9 [
namespace QtConcurrent {
+ O4 g4 }3 B( M1 |) }
4 G' A9 w# _& J) T$ R/ \template <typename T>
3 @% h7 Q2 B h9 Qstruct SelectSpecialization
+ w2 y7 Q! p! I7 e" R; h' U& V5 V{
+ ~* [! W6 S: Z) C6 S template <class Normal, class Void>8 c/ s% j2 ~4 {2 I2 Z
struct Type { typedef Normal type; };) @; @' {$ c5 z% D3 G6 q, \: u: l
};
& Q; Q& k) ?2 l% {; d, A
( `' Q! m7 \! ?, itemplate <>
1 V$ j: N: X" Q# [# O$ L; Sstruct SelectSpecialization<void>
+ t3 @" a( y/ O3 L* \ F{
1 e7 M/ D+ c8 q! d+ q template <class Normal, class Void>7 K( x' h0 L0 }" o" n
struct Type { typedef Void type; };7 S7 V; l+ l3 W1 B8 Z& K0 @
};) X4 I, n6 z& ]. t5 B
- Q- x! Z% B& S& Ztemplate <typename T>6 ~3 y, c# A5 A7 X1 v$ y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
+ F4 U( n/ o ^; C$ T0 R$ d! Y{$ u- E. ^) N1 \7 [! y) R7 {3 L
public:. O( q8 B+ j: s$ U9 }* ]
QFuture<T> start(), J8 D5 t& w3 c' n3 T8 G$ A
{
6 R! k; q1 e0 ^ T# _ this->setRunnable(this);, o$ c/ s- V& ]+ g% s0 I- R+ O
this->reportStarted();
& Z; C% Z* m/ U2 e' R QFuture<T> future = this->future();
, n. H9 P( X6 \7 p* o2 g; Y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);2 s- l h2 _2 C( w! ~( D! y
return future;
5 C/ Y4 L/ E; o9 |* }5 u }
# u1 h2 I- K1 \9 E( i( {4 h
% w$ R. w# S. ?1 l4 P0 I9 h void run() {}3 r. L @, P/ j0 b4 F, V# T% \
virtual void runFunctor() = 0;/ w3 j$ I8 G& @& ?4 J1 d( F5 c4 L( x) H
};
# t+ C O+ ^. U2 S; w: W* G" t" F" E
1 H8 T/ d! q; htemplate <typename T>
* E& Y- h# P4 t. O; O; U1 s" |class RunFunctionTask : public RunFunctionTaskBase<T>
' h: H: v5 A' D% Z& Q" @{1 k' ?6 J( j8 U v2 G( m: n# [
public:
6 {9 ?/ H2 ~2 N: {3 Y+ t. y void run()
: f3 a+ c+ @( ^ {
6 I. p5 C* D, }( M6 W if (this->isCanceled()) {
% r I q2 {9 L) X this->reportFinished();
' e0 |4 P, y1 x; m2 g( P, I return;
" ~" a# v2 O2 \ K* ?9 T* I) w }
9 p, S1 Y5 k: u this->runFunctor();1 Z. H! {1 w3 b; P5 }
this->reportResult(result);
2 J# j. N% s4 [! k8 {( W this->reportFinished();# p1 c, G1 c8 T/ F- h% x+ U M+ m
}% l0 Z! s( W6 | J% x/ n
T result;$ z1 `/ G/ N5 O+ H
};
5 a1 _, z. J1 _. O' o/ z! z: u
! j, Z+ P3 o" B) A* N+ h2 Ntemplate <>
6 C* }$ o% L- i7 n; C* f, Pclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
- H: K+ ^$ o. m) Y$ w" o$ K, a m' Y{
: r' b0 t. R" `" wpublic:
9 s x& S& x1 K2 k! e void run()1 ^" j, [& V1 B0 q- ]) G) j
{
! @" L4 |* T* X& L. ? if (this->isCanceled()) {% q/ f3 ~( t1 O- Z; s, n9 ~# p
this->reportFinished();! U7 Q! b, D' _- s. R* M
return;
! M9 W) L0 Q& h J }
( B( U: q( X* D% i( _ this->runFunctor();8 E9 H$ w/ b8 F; t
this->reportFinished();
O# f5 z' {: h# e }+ `, j" D: v5 h+ J: _0 `- \' S/ `9 |
};
' Q5 O# c) q* w5 x+ z$ E* A4 b. F
} //namespace QtConcurrent
, Z B! F, l+ o9 B# t9 z9 U8 p
( ~& A6 z% G4 S* ?$ D#endif //qdoc0 I5 y9 p) { u d, u( |
) [2 y& Z/ Z- y: D
QT_END_NAMESPACE4 L+ f5 } X8 @2 L0 c/ C) a
QT_END_HEADER
; E' n1 m4 q: m6 k: M; s
/ G e2 D I" E* o#endif // QT_NO_CONCURRENT
+ `/ j& @& S) s( l6 r* N5 a: X ^' B8 R4 @
#endif/ T. h9 v' B( G0 a
B7 L+ A: q) g |
|