|
|
我对syslink进行交叉编译到arm,但是出现如下错误:5 z: D% n# t. Y2 C8 X0 ^0 N$ D2 a
/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 d5 |4 b7 @- @8 q0 f
7 I3 D1 A$ `* a% }
这个头文件内容如下:
/ a. r) w6 [( i#ifndef QTCONCURRENT_RUNBASE_H
2 q/ }5 |: O+ o4 J#define QTCONCURRENT_RUNBASE_H
0 A+ p8 x* G! M
. \; z+ v0 L" D#include <QtCore/qglobal.h>
- G2 F m$ o! q8 k+ n. x0 K3 r+ f( A/ @
#ifndef QT_NO_CONCURRENT' e! ^ X, r$ f( T
- a% O, u( g, w, a+ h) _#include <QtCore/qfuture.h>
( `7 C1 C* K% r8 k$ X#include <QtCore/qrunnable.h>
2 c7 C( ~8 Y& N$ O9 }8 F#include <QtCore/qthreadpool.h>- x: r, j9 b( i
* z* B7 L9 e u) s! B2 X; DQT_BEGIN_HEADER
! W) z8 _ {# ?) t& b4 h3 u: D" ^# AQT_BEGIN_NAMESPACE" T! i! X2 h ]/ D7 G$ {
, w+ A/ ?$ R2 x( e7 o
QT_MODULE(Core)
% e. x( x9 u: y& m. D- \* o, N4 ~) t, S# f2 k. K
#ifndef qdoc9 | H# C/ x' v. K) S
0 z9 z0 R' W' x8 q4 e7 T
namespace QtConcurrent {6 U F( f0 u& [6 \
# `. _9 d7 }7 T& }9 M; rtemplate <typename T>9 H( m7 U, Y; f; p
struct SelectSpecialization
; [/ H) n% A: `) n8 G{
4 r: f* Z6 Y. t. f template <class Normal, class Void>
x0 c- |$ Y% z8 U. H struct Type { typedef Normal type; };
6 T! }/ H& W- a) A' @% V};
, f9 r' B8 j0 P# m4 O! Y* x/ |. @5 K3 P* @% B% L
template <>
2 E$ k6 F& T% v8 mstruct SelectSpecialization<void>
5 T" ^$ Q2 Q3 r5 [{
, s1 a& c- `$ D X; j template <class Normal, class Void>7 a) Y& ]) E: {; W
struct Type { typedef Void type; };
) O2 Z* k0 I h; U. H. z};' v, x. a% O8 |( J4 i# G" d
1 c0 ~2 ~+ n& F; h5 F& otemplate <typename T>9 X+ f/ D2 P5 h& @7 D' ~
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 |9 E: Y: m' |2 M- F6 D" [{
3 d9 s$ r- a e' [1 m3 [2 wpublic:2 I, J2 `( a; X: d4 o4 F
QFuture<T> start()/ A" t+ d7 v d6 z% P- [" i
{+ c1 W7 Q6 P; [+ c
this->setRunnable(this);% L `0 q/ Q+ x! ?9 Z& G' m
this->reportStarted();
& L' c: p: j0 i) I QFuture<T> future = this->future();
9 `" F1 n k1 u" I! R8 ]5 W7 q) g QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" H4 ]3 X1 [9 |$ B( w+ I9 C* _) ~ return future;
& U Z; }7 x* b7 `* s( B4 q; J }$ u. B8 R" @+ t$ S. M: A
2 e9 T7 C7 |3 o* J
void run() {}! U7 @; k7 C; b: h0 _
virtual void runFunctor() = 0;
( j7 j* j( j% D};( F- B, x4 N) e' U, q$ Z
c0 ~) z4 d" X8 C9 E
template <typename T>( Y8 R# Y9 S# d; d5 ~5 u: }! ?
class RunFunctionTask : public RunFunctionTaskBase<T>7 w! W) z" |) Z8 E+ b; c
{# ^) _0 R2 _: b1 S! a+ Z
public:
) P7 z5 i. l2 \5 W4 ? void run()
1 s# t; O6 e! j$ v$ @1 ^ {
1 b2 R9 P3 c/ y5 P0 _$ R U+ ` if (this->isCanceled()) {
* @+ \' @; e9 w% g" W2 N( ], O this->reportFinished();
+ X7 _4 X3 [" Z# X( t return;
$ d9 a9 V3 M$ w3 f' X }2 B7 P8 p' I) j, z
this->runFunctor();" S/ M; S C; S. W+ A( p0 @ N- W
this->reportResult(result);
2 P, ^" u. {0 t# B7 t1 x this->reportFinished();8 H3 q2 z' c4 p- |
}
* E( Q. a) Q9 e" s T result;
2 l/ d C" q8 I; X& V: U/ L};
" n+ P) I( G3 N! K; {8 U3 g
' w, ~7 n; E6 q! ~template <>" `+ W. J& h6 J- N2 x0 R
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
) t h0 S4 Q* x1 K3 s{
# @8 t c$ S) o9 Cpublic:7 o- P5 [- P7 v
void run()
& |: J' U* u1 A4 t {
8 O. Y$ Y% E! Y& j4 h- s, @7 y if (this->isCanceled()) {
6 i, P6 N/ \ U. `1 d+ p2 n, [ this->reportFinished();$ { O' p! p: y: N1 U
return;
4 H' E9 f/ Z2 J/ M( _& S. T0 T }
- p7 G7 f5 j( z7 D' i! p this->runFunctor();6 d2 p4 M$ u" w4 A( i
this->reportFinished();; C0 p/ K: I8 Z& K# T; J2 y
}! A' l6 w+ o: U
};
& j; _8 ^: j$ d4 t( J: b/ _# v
2 c2 V, G0 x9 d. l} //namespace QtConcurrent+ b1 E# L; F3 h D" L9 s& {. b
( F' r0 @8 H+ L#endif //qdoc
1 ^9 c7 d8 ?( z6 a& I3 B% Z7 r d9 g4 r) j8 n
QT_END_NAMESPACE* ~" p1 Y2 x8 U' h. C$ h, ]7 W
QT_END_HEADER, r9 W+ m: I X: K$ V$ X B
, R* N! H' a) ?0 [
#endif // QT_NO_CONCURRENT6 Q" L" k* n; a
$ i: O3 k: i' h3 `#endif
: ~4 Q+ g" \& [4 ?4 C6 J6 U+ \' t8 {6 c, V
|
|