|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! z9 r7 Q6 a z+ ? ^1 b9 z f$ ~
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& u2 p% {' K7 z6 P+ S# h R7 F& N* J. h5 L9 x9 h& E1 E# ?
这个头文件内容如下:2 \0 Z8 J' n! U- ^4 @* ^" V- p' s1 n1 j
#ifndef QTCONCURRENT_RUNBASE_H
# O3 |& @$ I4 T#define QTCONCURRENT_RUNBASE_H6 ~. F8 M/ J4 B
8 o( \ Y6 g) } }0 w#include <QtCore/qglobal.h>& L1 O0 j) u9 D) z8 j
7 t f, I9 }% y( i& o3 h#ifndef QT_NO_CONCURRENT' L8 o- u6 o; V {
/ n; ]! c0 `, p0 }, d3 m' K#include <QtCore/qfuture.h>4 v+ l$ M- U1 |/ K4 }
#include <QtCore/qrunnable.h>$ E$ @' e# [+ t: n* T3 X
#include <QtCore/qthreadpool.h>+ l% P8 K1 A, v, d+ O! G$ [& T0 t
0 ] F I1 }1 w, D, R4 iQT_BEGIN_HEADER
. T- q+ Y. b! _" P. Q9 pQT_BEGIN_NAMESPACE
3 q0 y5 H1 `9 q( E P- F
% K1 B# b2 J9 X& [, NQT_MODULE(Core)
) v5 J2 H8 i; B; E! I0 z
, J9 Z O7 s; C" ]2 C3 o+ I, _! S#ifndef qdoc3 c; \# T) r- i8 n# p, Q; A4 h. H ]
* X* w! P5 ^* C5 r" G4 x6 U' W# znamespace QtConcurrent {9 x; E1 X) `: Q& L* L( z* r
/ o8 _! a# T/ {3 Z1 O7 s; ~! ]template <typename T>7 T( l* y; C z q
struct SelectSpecialization- b+ z4 o$ J8 }3 }2 [
{4 |, l1 v0 N3 v+ N+ g' j
template <class Normal, class Void>. ^# V( w/ l f8 B8 f
struct Type { typedef Normal type; };
9 A+ Y! P9 n8 M' {0 L8 g* _1 T" F- r};* l) q" F1 t3 d( E) r6 g* U( c, E
( V$ L8 M3 N* y5 E( Ztemplate <>
+ ] R6 T& g0 ~9 D8 r Xstruct SelectSpecialization<void>% r' D$ w2 A0 w3 ?8 H* k2 m3 I
{
; D" m; d% E* } template <class Normal, class Void> m; h# ]4 q0 [8 g
struct Type { typedef Void type; };
& a' {6 Q- X3 p};
( m' @- \$ [; m7 H; }( @- M
. o9 w$ t: n+ U& j; V2 p2 ztemplate <typename T>3 `2 j) R( P" D
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- V9 q7 L, D, F5 Q8 @8 V7 T{. C6 L2 f( u9 ?% b3 ^2 `4 I, {
public:0 I& }) h, K0 W9 A. b* u5 I, O$ d6 h- U
QFuture<T> start()5 r& ]4 P$ T7 P4 H5 R2 r4 K$ l& q
{' v3 K" U! Z T, S g
this->setRunnable(this);1 p+ R4 ~( S! i2 }
this->reportStarted();
5 @) \- v6 n1 F* T7 N QFuture<T> future = this->future();
_6 Q; U7 l- n QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, Q( p# D! ~" N return future;1 [* Q" x2 M0 a) o
}8 V7 A( v3 e7 E Q
( x1 ?# g6 N4 |; G9 t6 ?
void run() {}" R+ C2 q$ d( x. _% F7 g/ Q1 A: ^3 e. Q
virtual void runFunctor() = 0;7 u+ D0 a% Y: E& p* \7 _/ K/ z6 Y$ |
};% E v3 s1 d. v% n: \
& N& ~" w3 o6 V7 x8 Dtemplate <typename T>
! S8 C$ r# M( k) h9 w0 [6 X: u2 u d$ |class RunFunctionTask : public RunFunctionTaskBase<T>
6 Q* M, I" S) A{
' `+ G6 ~5 O L/ U9 kpublic:5 F% D0 H3 r! m% b
void run()4 W4 R* I, I* ?# Z! k" h
{
2 [% i% W6 Z2 {- `3 ^ if (this->isCanceled()) {
3 x, }: G7 v5 \$ n this->reportFinished();
w2 ]: ~: x* Y ?# Q$ H* S return;8 R+ v4 X! X- X/ k3 d1 ^
}0 [7 t- x6 \6 A t( X! k
this->runFunctor();3 J4 R, z5 R' d
this->reportResult(result);
6 K& n+ c0 S' i) n5 g5 q3 x this->reportFinished();( t+ S4 |4 L4 o2 @; O/ Y3 ~* u( @
}
8 d) r( ?# y" a/ x3 A8 Z2 Q$ L+ C/ @ T result;
, \& S7 b' j! Y) V6 v7 O0 M, U};1 I& Q( m- F1 a2 X J2 n8 s
$ A6 f' L R: k* R: `0 _template <>' n' r7 h/ n* T" d# _) [& h# O& x
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
! J2 ~4 Z3 P2 z+ \5 y{: w) u- }% G2 p0 w
public:
6 O, o" N6 v3 X7 F) C& p0 x6 [2 Q/ R; N void run()1 b) L8 m$ p- n
{
; P/ O# p- @! M$ e9 k2 @ if (this->isCanceled()) {
. Q8 M2 i9 u M; t this->reportFinished();) u5 f( u; i6 o# ~
return;
8 e, j6 L5 Y! M9 c& f }/ f0 Q8 L; R% w+ H: F; I+ F" ]
this->runFunctor();
% u8 X. ~2 N; p' z* P# ~ this->reportFinished();
% n% W# _- P. `/ H9 [9 p }! O% Z7 l3 l% J: p/ B" J; X
};
2 W! x1 A' V2 [: h: J2 f: P! k9 Q$ w |9 g2 g
} //namespace QtConcurrent
' [5 ]9 u. w8 C/ o$ U5 m: S
6 H0 K8 [# B+ [2 I#endif //qdoc
& K1 J1 c9 l* h+ s' j7 H) b* h% b2 G$ ]6 V- G! W
QT_END_NAMESPACE
+ x+ P9 S6 P K+ x' b; E- u0 ^QT_END_HEADER! q* Q5 Z4 ?/ s/ {% d
+ ^3 m/ O- Q& ]% a$ B#endif // QT_NO_CONCURRENT8 i9 M% c! N N6 m. O" Z
# @' m/ F P* }( L! e% G& `# r
#endif
% _* c, z7 T+ f- r; n
* \6 i; l9 U2 s \" C |
|