|
|
我对syslink进行交叉编译到arm,但是出现如下错误:2 ]) K' u: M& 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', A6 m, d7 g: e4 {& v) ~
* \* f; X( |2 a; L7 s: J3 s这个头文件内容如下:$ n" e3 D' @& h" c0 X9 I2 e* z( e
#ifndef QTCONCURRENT_RUNBASE_H7 z, j4 x& b- I) K* |
#define QTCONCURRENT_RUNBASE_H
+ m3 b! `9 ^. o2 A2 L2 r; i8 O: m5 s$ O$ a/ m
#include <QtCore/qglobal.h>; v* f% w' y& j1 L; v
3 e8 a2 r( I7 s( g D, Z#ifndef QT_NO_CONCURRENT
9 a2 V& Y: m6 V7 z
6 x4 p( e. ^7 G#include <QtCore/qfuture.h>" }5 B/ O! C# W# C
#include <QtCore/qrunnable.h>
, g/ n* u3 ?/ g) L: I7 \/ w9 p" u. ~#include <QtCore/qthreadpool.h>
+ \, r% N8 w! |- h$ [4 I3 i6 O; g4 I8 r0 M
QT_BEGIN_HEADER
% m9 z- [4 O3 P! @QT_BEGIN_NAMESPACE
6 X/ z; S D8 b8 C# _! N. p! L' @; \$ s" G
QT_MODULE(Core), R: n6 x5 X- z( p3 Q
4 M: a/ [: ~. `1 }: g0 b. m
#ifndef qdoc2 O4 J+ |9 K: _. O. ]
, o3 G: j1 I. ^1 ~. Q& o/ d
namespace QtConcurrent {3 B. d7 [6 |! \
' E& K) _' A2 O8 v1 W V+ {
template <typename T>7 l4 f: h5 c/ R2 W3 }2 T& v
struct SelectSpecialization0 h& D' S( T. w i4 ?2 Z
{
$ {- B, O/ K& u" h; N template <class Normal, class Void>
: F" m! P' r; U6 W& l; W: ]3 z struct Type { typedef Normal type; };( j' k" |9 t! v) W3 g% i
};' R1 g7 s2 y0 l
5 n. I1 A) j9 E* l6 e/ Z* itemplate <>
! d M: ]. k- {/ T9 K3 jstruct SelectSpecialization<void>$ m1 H! n8 ?& n H' i8 Y
{- X- o! D) L1 n0 k2 [
template <class Normal, class Void>
+ {+ W# p: V& {. h6 n- n struct Type { typedef Void type; };
" x* M7 L& p+ j I% j, c};# L( r5 H, l7 I/ |1 H. V
8 Y9 q) w5 v9 K" \ e: `$ c l& jtemplate <typename T>4 R1 l# z4 J; k
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable$ Z0 j) r8 Q; B; V) _3 G6 @1 p6 l! @
{0 D9 X" o+ y0 K: I7 k5 g* u
public:
7 f9 j4 Y1 W4 r8 W' L- V QFuture<T> start()
3 H0 e. f* [8 _! j8 g4 d {
+ a" j/ A/ H) z' t; [ this->setRunnable(this);+ E/ n# g3 L! _3 b
this->reportStarted();
* J. H2 J0 C% \' q( W/ s QFuture<T> future = this->future();
8 A/ b+ }0 I9 T6 D* q) [4 Y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( H1 O2 O. H% W! k
return future;
0 l6 s6 z. y# W }; M, b6 l6 h0 H$ y" v" m
4 R! e; J$ b! k. w0 Z" u c void run() {}3 p4 _* q/ n" J7 T; x
virtual void runFunctor() = 0;% S" ?, m7 m/ t
};
1 I' ]8 P3 k" y: A" f
3 W) ~$ B& G3 G* e$ ]template <typename T>
( H( Z# T A% N9 s! vclass RunFunctionTask : public RunFunctionTaskBase<T>* Y- D M2 o2 b/ m+ z' y; c8 s
{0 B# z( M3 I0 b. X% }! ^4 |0 P
public:
/ S4 y& ?" S9 Q7 K void run()
/ M# o N4 G, h8 T {- x- [* @/ w! x6 N* g- R+ Z
if (this->isCanceled()) {8 A; M; h8 R& M3 r# U
this->reportFinished();
' r+ q* d1 n) ^1 K) d- o( w. P return;7 n1 z: m" F- s# v E! C
}& J# J$ N3 M* \2 W7 [
this->runFunctor();7 u' d1 r# E' A0 r9 j _7 j
this->reportResult(result);
- j3 P0 v, j! _0 M this->reportFinished();
/ N9 K/ H- v( u( X; v } z/ k* x7 N8 Z( g
T result;
; q3 W8 |4 i ?3 L};
9 y/ [2 o8 \5 c |5 B# e: n! i4 _
3 c' R1 ]5 ^+ |. btemplate <>
# i# G3 Q# C) nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
F6 Q$ p2 h3 G* Q: k{
6 E8 H3 n7 ]3 S @8 hpublic:1 J( Q4 V2 V) {5 T( }( z
void run()
) s& D) D [1 N% V6 w( W/ m# @5 f& X {
. B4 R1 H9 b' q7 g$ i if (this->isCanceled()) {; O/ `# R: { P1 ^ r5 o @
this->reportFinished();
+ I- ~8 b/ \/ e0 u return;3 `4 p+ q; G- H2 D. y; b& S# J
}
2 _ e. }/ T; g, y8 c8 j this->runFunctor();% Y- k# z+ k3 c% _) q* j
this->reportFinished();
, }( Y5 n7 L6 @+ s }7 C7 E) \5 ^! n: x9 z& l/ x
};, Q2 M. \: f1 K7 C+ U6 f
1 N3 Y- @% B/ O* }* t
} //namespace QtConcurrent/ N0 _& s7 R# e+ S; v* {1 D3 u6 O
% w1 _1 z) L7 V: ~- K" h: z#endif //qdoc
" `; I! L' ~& U8 D' ]8 x; W7 t# z8 v/ F, N+ ?
QT_END_NAMESPACE* [0 k) O6 `, M1 C" Q% e
QT_END_HEADER& ^7 a. {) K- H. L
' l2 D7 l# R4 O& [: V
#endif // QT_NO_CONCURRENT
% M, h/ v1 l& U6 J
; |* F- m% d/ w$ P: V, W) R+ B#endif8 I0 N* A% Z/ J& f' W4 X
6 u- Z' @) D4 l1 L$ N9 X
|
|