|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 O$ ^& U {2 o; C* j, B6 z6 e1 A# E
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'9 P0 N8 t2 Y( \+ g
+ \5 s5 Y. t& l, Q这个头文件内容如下:
; U1 d; R9 }# H* p. N+ r5 Q4 v: w5 ?6 H#ifndef QTCONCURRENT_RUNBASE_H
7 X, K/ L2 O& Y; P# `6 a0 x#define QTCONCURRENT_RUNBASE_H
* |# V+ O2 {8 A
7 H3 [0 T; R1 i& w7 Z#include <QtCore/qglobal.h>
! z" a6 `8 B2 s: `7 g0 t1 \4 c" A# h1 U
#ifndef QT_NO_CONCURRENT; [* r- u2 o% [, h
/ c1 T4 |. `, ^ \& r) }
#include <QtCore/qfuture.h>
3 [7 Y2 g2 J3 K2 @( B6 i#include <QtCore/qrunnable.h>
$ k1 g) c2 c! z* s4 l) ?#include <QtCore/qthreadpool.h>
6 x. G% ?/ c5 C' ?7 t& u
2 k7 q8 l6 @" h5 U" M; M/ J0 nQT_BEGIN_HEADER
& U0 j2 M. J) [4 f% i) t7 ~: {2 AQT_BEGIN_NAMESPACE
! c( y! d: s) s% x" a2 ?3 r; R3 t; R
1 i2 g! c% H$ i0 ~* CQT_MODULE(Core)1 N( n: m' k4 A$ @
: H( f" Q9 Z' G- K2 K7 I$ Q6 l
#ifndef qdoc3 i! u) H( I7 R. O' W$ F5 N, P7 [! X
9 V, T" P5 l/ L$ d# e+ z a
namespace QtConcurrent {
; H1 z0 D1 N. k4 w9 T; P/ m5 C% |3 V
template <typename T>0 M& Q: {! P1 Z
struct SelectSpecialization& J8 _! M2 [ M# O
{
+ ]5 D+ i# a' r% } template <class Normal, class Void>
8 v. P( i+ X" p1 J( `5 C struct Type { typedef Normal type; };" z2 Z! R* p4 t+ @. ~7 F! C9 c2 o4 b
};# g1 t% Q" g, i! e- R3 Q0 b/ B$ X) n
5 l8 R4 I9 X8 [& }template <>
) e5 f% \4 O7 dstruct SelectSpecialization<void>% I$ {* B) o8 m- {
{
0 N% f3 ~+ i: @/ L: I6 W template <class Normal, class Void>' v6 c! e( n% i9 }- q. x
struct Type { typedef Void type; };
- D+ k$ J5 ?! l. k4 n5 c a};
& C+ C; s; _0 M9 o; x! Z
8 L" I; g" v% n+ A6 {* M$ `template <typename T>9 I- s% ?/ a7 g9 i, p" N" m
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 P& c3 ^; L4 G4 |/ h
{% ^6 d, N6 k2 p
public:
$ W$ ?0 b$ A' U& u0 d f QFuture<T> start()
/ K% ~( Z2 y0 ]8 k9 N) ?! r {
/ ?0 k( H0 J% \ this->setRunnable(this);
* M/ S/ L7 ]+ u% r this->reportStarted();! B: e- l/ C$ S6 K& K p% U
QFuture<T> future = this->future();
! _ l/ Y( @" @9 ? QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) V8 W1 {5 X; s; u1 A3 c
return future;
& J' S- J$ ^9 f8 |: n( v+ \0 O }
7 ~& } L% E* e+ Y7 @ R, A6 i7 M t
void run() {}
6 E) i" J. G/ W* u! X8 J virtual void runFunctor() = 0;
# |) S6 {1 ?* a8 i6 m* y7 x& ~};: l( v2 j" i, V; M+ o' b; B
$ u- I( V3 h9 c6 R' W
template <typename T>0 {% C: k2 k) N: X; |8 [* n+ s
class RunFunctionTask : public RunFunctionTaskBase<T>' B+ U% {5 u5 W( o
{
" M& D0 V) y( p7 T7 i# jpublic:
7 d) {9 F& O3 x! w: z1 g void run()
5 X- U# ]/ k% ]: `( @; z {
/ Y. [. U& ?$ G if (this->isCanceled()) {
, Y: j) T$ x7 G; \9 G this->reportFinished();
, |0 p; _- _( E/ x# [ ] return;
) r6 r8 O" j% I8 w0 s) x }. s% I8 a; j, T0 f% V) `1 |! f
this->runFunctor();
% Q* [$ W9 C. x this->reportResult(result);- S1 x7 G0 Y4 H3 W' m. F
this->reportFinished();. O' `8 B' m, {9 k
}
. s- M- L5 }( T3 f, y T result;
+ R% l3 T% u6 a2 R7 S0 w};9 U$ o+ f) _0 Q& n! I) D# R
) A# s/ E. Y& v; p
template <>! \& y& l0 w; x
class RunFunctionTask<void> : public RunFunctionTaskBase<void>7 r8 ~* R1 ^9 S
{
% h* ]5 {% I( V8 ]3 `2 w; X( }public:
: v/ n7 i( F; h, Q/ Z; M( N void run()% S. U6 V$ x. w/ r2 U9 f
{
- U- T/ q# q* x if (this->isCanceled()) {- G; Y3 i: r3 L3 o5 y" Q4 T
this->reportFinished();' Z" X0 T9 i4 ]/ H, w- Z# G
return;
$ _; T/ q1 W# \- W( Y) f/ a: i i }
( Z3 ~- l' \% O% q/ b this->runFunctor();
, {1 ~7 y9 |5 {4 k this->reportFinished();2 I5 g0 A( O$ A5 I
}/ T5 F1 ~ Z' C! Q2 g, `% q9 ^
};
$ ~) m; g1 v2 T* o% ^, N' B' ~0 C2 F4 Q% o @9 I. o
} //namespace QtConcurrent
3 Z& U" O& y0 e& F3 J4 G. P8 T! S# m b6 I9 E* j; n/ |8 H5 ~% Z
#endif //qdoc
# E! B! @+ N6 S5 }. C2 J" G2 d5 i8 m6 l1 I7 r
QT_END_NAMESPACE
; L ^0 T# E5 O( C$ pQT_END_HEADER
+ U% p& c+ e, s: C% N- {# c! `0 m7 T& F5 M& _7 O- p1 A
#endif // QT_NO_CONCURRENT+ I) h1 m. Q6 t( i; y
2 t' W: Q1 ^3 S- {- S
#endif% b% }: X Q; U1 D
6 Y8 O8 T# w4 P( h' L; n6 ]: L |
|