|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
' A( D) H' }) o0 Q/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 m: o+ @; X. G% u* G' k4 V& h+ N: `1 a3 c+ G
这个头文件内容如下:; a# t( O3 {1 u3 `$ @
#ifndef QTCONCURRENT_RUNBASE_H2 u' r: u3 F3 o$ \8 \, v
#define QTCONCURRENT_RUNBASE_H
- ~0 E# f9 s, k0 \1 [
6 S! N+ J# I% L% g2 p8 L#include <QtCore/qglobal.h>
h( ?$ f2 g/ V
4 F) n" M* G% U r8 N#ifndef QT_NO_CONCURRENT
7 H! \( v) w/ ?, c8 A; N V' @4 K, G# I% k
#include <QtCore/qfuture.h>
" k H& a- d. H# ` X' t5 j3 @#include <QtCore/qrunnable.h>
4 G8 i B5 l7 \ F#include <QtCore/qthreadpool.h>) ^# D7 U2 O1 v/ w
1 K4 }# M R8 R& |
QT_BEGIN_HEADER) a, y) |0 e# Z+ p
QT_BEGIN_NAMESPACE: _ p# B2 l3 `! B. J0 p
+ a- d% K; S9 U! bQT_MODULE(Core)
e/ m6 R- ?: A% l# p; b
. J7 N3 g8 X9 d2 J& n/ t- L1 O#ifndef qdoc
! y* z/ M/ {4 w/ w6 E4 u0 O4 }
}' e) p% ]9 ]7 \namespace QtConcurrent {
1 c3 S( Q5 c0 L; E% a7 _# {: P" c0 y: z
template <typename T>
4 ~6 z0 [6 g4 m7 Rstruct SelectSpecialization
- o5 x9 b8 w' _{& k4 j, B2 N0 R2 d T
template <class Normal, class Void>
1 T0 G9 [1 ?, o& ?) P* O struct Type { typedef Normal type; };
! R6 Q) B3 ]* f};
. V2 Z5 N/ |& g5 f
9 W8 r2 o* R; V/ Gtemplate <>
/ R5 u+ a( q2 s) Wstruct SelectSpecialization<void>/ E8 ^. c. T: q+ b
{- g0 L, A7 s) i4 o9 K, }
template <class Normal, class Void>
4 W1 t4 x/ R) a3 v struct Type { typedef Void type; };
K6 a d' j# w# A# Z; v};
$ R3 `2 M& W# w* {- M a
$ @* j' i j! H6 S- rtemplate <typename T>& [( k% c) N/ t' y. N
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" r0 p, q: n% a4 `, w' T1 S7 s
{( Q" b t3 s7 G1 }4 R1 M$ m# M
public:: }% x9 q/ H; T/ e# t& S9 ^! G+ H, Z. M
QFuture<T> start()
8 Q# u1 C2 H; U, L! E$ W, ? {
4 i$ d& M1 \- x: }' Z this->setRunnable(this);
# @' z0 r; a% B9 B. G' X. w2 \* ^ this->reportStarted();
! m5 z |. H* p QFuture<T> future = this->future();
+ t" f: f, z. u6 }5 s; P# x QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
) X# F$ q7 ]1 n5 @. o v1 B+ C, C4 S, E7 E return future;9 k7 x# |% ~* j5 S
}
2 k: Y+ b8 R( V3 ^! A" h* v
, a/ y1 [: a; k7 I' o6 ] void run() {}
, _# c! U1 X$ r virtual void runFunctor() = 0;
3 B# W2 I1 Z [5 q! h};
8 o2 [' W) P3 @) B: U& z8 p; _# w- x. }4 T0 M8 F: G3 m6 P+ x
template <typename T>. T3 p" k. f3 w1 x
class RunFunctionTask : public RunFunctionTaskBase<T>
2 Y4 n8 D) x0 k+ F; O% k: ]% \{: I9 g/ K% i+ p. ~( Q, _" }$ @
public:
7 d) N1 Q C) H+ U/ q' |$ ]; Y void run()
3 M) U0 `! ~6 w7 t3 l3 D {
& u9 H+ t7 P4 v7 N" | if (this->isCanceled()) {
' v! E1 j& o+ h7 C7 m! G this->reportFinished();
0 S( v& p* H7 g+ \! A return;* ^# y/ p: h* n1 M+ X* {
}2 }! ?& r% T- F& h2 p
this->runFunctor();! Z5 g* T7 g# G# ?/ u% o
this->reportResult(result);5 B+ ^/ h( ?- v- H9 O: g0 b
this->reportFinished();
) H0 ?6 a5 }- Z, j0 I- m. `4 M } [7 \ ]7 s/ x$ B( s; j4 E6 c
T result;
* {$ i# o9 V( k: c* U, d& c5 R};6 E: E- N# E9 _8 C/ d# ?/ C# Y# o
" K; O }- P: |3 p% X+ [template <>, L7 J' a. H6 b
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
3 Z5 ^- g5 K( v( R) u{& _, t1 h; n( a& ?9 v
public:
/ `4 p& \/ R# D/ M! O( |" g/ i; Y void run()
, A% @! I, \# c# ] {9 U$ F- X; v" L( s$ T- y
if (this->isCanceled()) {
0 c4 }4 s4 ]+ J" P this->reportFinished();- C; q# m8 p6 s, `# w! c
return;0 X: r8 k/ }/ V5 a. W
}' \1 `5 D& Y$ a
this->runFunctor();
: S) X& \9 H6 B0 b" S" I% K0 W2 f' | this->reportFinished();* t9 U5 |* Q. u
} {( }, N! m% k8 m( l# [; F
};
9 M, R3 c P: K; |5 V1 n
7 o1 B- }' O- ~- D* |) o} //namespace QtConcurrent' o+ o: _; ]# g5 O* L9 {
# o3 e# r7 m# O#endif //qdoc# Z2 V: ?/ j9 R: g% v$ y& N
% ?7 M7 t* M" z: i
QT_END_NAMESPACE1 i1 K+ h( l2 t+ ]
QT_END_HEADER
9 l, t5 O* K/ E! C3 N# n% L7 F5 W) ^- F- G
#endif // QT_NO_CONCURRENT7 e, `" Q$ Y. r7 D d# q* y( [
7 W R! }4 N% H+ b
#endif+ Y, ^' S3 c T6 z7 s
! r. T! Z p5 ` z# X, Z0 j* X- L- h
|
|