|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
' D8 B+ v6 I8 d# W/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 _' G: ?8 m8 L" k- J% ?6 H1 z2 ]# v
) B% E5 Q2 e4 }% G2 i! f0 X这个头文件内容如下:( c+ H) }% k( U$ A: d* S
#ifndef QTCONCURRENT_RUNBASE_H; B9 M4 a5 j' q$ s- Z
#define QTCONCURRENT_RUNBASE_H
9 m! q% x2 v) ~, K* n0 z) j+ s( G! \! `! h
#include <QtCore/qglobal.h>
" z' m8 F7 H6 D2 Z$ [9 c
& j$ {: d( q' M6 P, t+ j5 i# E7 O#ifndef QT_NO_CONCURRENT8 D' I. O. T) @& ?- i
D+ T5 V2 y9 v
#include <QtCore/qfuture.h>
7 X$ I2 r2 C7 {4 B, I* @#include <QtCore/qrunnable.h>: C' b0 Z" Q) e/ C( O! f0 \8 u6 J3 }
#include <QtCore/qthreadpool.h>. O$ Z( x; n3 a1 ]; M" q( T/ k9 ?
$ j9 l/ B) L( [0 }7 ~8 c2 C/ ]QT_BEGIN_HEADER% O' J* y) v! [- [
QT_BEGIN_NAMESPACE- i: n1 D2 r5 D$ x% J: B
) n2 D- ?2 G9 e/ p/ a
QT_MODULE(Core)
# A, T# N2 _9 g' t! i! H& B
7 m7 T. S" }/ V& P/ }#ifndef qdoc
6 G7 e, |) z3 _) Q5 |; u+ V# I2 r, r: U
namespace QtConcurrent {
" M' ?: v9 N% o0 R. v1 `9 x' d6 w$ r) u. e: d) ?& U+ f
template <typename T>7 V# K# L$ A3 ~3 K0 R& P
struct SelectSpecialization
- K& V% o4 Z6 D* c3 u{
" p1 t+ ?# m( _/ x* P! [- \ template <class Normal, class Void>6 b3 Q7 Z# y4 ~3 r3 O2 T o. d. g0 @
struct Type { typedef Normal type; };
- z# Q, u7 D8 t! m$ \};
2 i m! D ~+ ]( H9 p. {* G% [
9 w [) i( @4 ]3 _6 ttemplate <>
6 p& U6 t$ l. a9 o2 u# m5 ~; E" q6 v' estruct SelectSpecialization<void>
: d* K4 X; G3 l' G{
* P2 c; \4 f$ v# X/ A* U( D template <class Normal, class Void>
7 s/ H: N1 T- N* X/ @ struct Type { typedef Void type; };
4 r! q' p% W# o, P5 W8 y% l};
0 x$ [! G9 ~) h& M7 }4 ?4 C! v4 i* N
template <typename T>
) G* [9 z( Q5 }( B- A6 |. U: xclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- _$ g0 a1 O% A2 i
{7 h4 I- ?1 |; Z. y* J9 W: T$ c1 t
public:
" Y6 f+ q/ {3 o, V8 y QFuture<T> start()/ b: P3 e; ~) c' y# \
{
* W: q* e1 c& i H! \1 y this->setRunnable(this);
. k6 a) d& F6 U u this->reportStarted();" p. K/ d2 i n% m0 H# M5 t
QFuture<T> future = this->future();
1 ~' p) Z2 P% k+ h$ X5 X3 } QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. ^, Y6 Z, G( r# n1 r" x; I
return future;8 D' ~: m2 {$ N* s. g( [
}5 w# e2 J/ P- A3 v; Z m
6 \& O: b( Z/ x
void run() {}5 b3 w9 i# w% X' `
virtual void runFunctor() = 0;
: k3 i/ C0 p$ \7 Q: a8 @' {; C6 ^0 I};
- c1 ~5 h1 }$ R+ `5 Q% L$ H3 [1 T5 b# x" ?9 C0 @+ f
template <typename T>/ S' C; K1 J0 l$ x+ a+ M* ?
class RunFunctionTask : public RunFunctionTaskBase<T> W7 w1 q9 a7 _5 S
{
% f( e' p! T0 c6 K/ Bpublic:- `7 J0 [5 ^2 Y7 W. ~
void run()
0 Q8 t. a- F" `/ H, P, @1 C {
9 A' K% j# c; Z5 d6 h if (this->isCanceled()) {
/ D4 K! Q9 [5 R& [. w this->reportFinished();/ V0 g( ^: X2 c# F& G! m& c* w
return;5 m: y1 I2 W, T8 J: l, \
}
( Z/ a0 S5 O1 m4 P. A3 P6 M this->runFunctor();
# f+ z ?* R) ^. w0 G3 _/ U this->reportResult(result);
9 |$ P. p! w- P1 K8 Q8 d3 n this->reportFinished();) V, s- y. f' k# R- @: ^
}
( [2 r. F) h) d' X) ] T result;
. _& `& Z6 D. I};( N' R; Y5 g1 _& u% W9 d; M& T3 w1 ?
# ~" A0 v+ l7 @. `6 f$ o- }4 P
template <>
9 j0 s, _$ Q! Z) B7 r; Aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
0 D9 p$ H7 X) D8 j) v) y9 H3 f{+ _& ?' I) w+ E% W6 i
public:
# a- _( g. Q& w0 R# n void run(); x- ]5 h/ o( f- d# [3 J
{
5 \2 R+ K% [( O- B if (this->isCanceled()) {! p. I3 Q7 u, G- i
this->reportFinished();
2 z* P0 [; I' g6 _/ I" M return;
; c; y" N" }1 J, F# j }
5 z2 V# s. U- G this->runFunctor(); J( Z2 }! I5 s- s
this->reportFinished();
/ x- b, t+ Q8 H$ i }' ]. d- s5 ]2 H0 `% [
};
# O/ g0 F9 j4 \- J$ V4 V- v
+ F" r% i7 M+ n} //namespace QtConcurrent5 d) A# V+ {" f6 D- p
4 p+ D+ {# M+ e7 c' Z6 H#endif //qdoc
* K X0 v1 C+ A. H
6 K5 J% C7 y! h5 aQT_END_NAMESPACE
" }7 K8 y; S7 | _6 OQT_END_HEADER1 ?6 [' B0 v9 |; p: h; }1 ~
) n& k+ T7 F6 C" H) s
#endif // QT_NO_CONCURRENT
8 [' e/ \+ o2 r# L2 }. d
1 t0 ^8 n6 t0 |+ X) Z" ^7 k. d0 k#endif
+ k. b8 t. r) h* d+ s/ h
& a7 c; J5 F7 {& G' b4 H |
|