|
|
我对syslink进行交叉编译到arm,但是出现如下错误: h& j* ?$ f# U. h- J3 G' \
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'6 \) R) r9 E) F! ?4 a
* m$ l) ]3 N8 D4 R
这个头文件内容如下:- h" X& S5 |! s$ X
#ifndef QTCONCURRENT_RUNBASE_H9 w) f* D$ t* n# `( I5 D: o' J
#define QTCONCURRENT_RUNBASE_H( }9 X2 \) ?- T5 `; t+ S7 W
9 q% ]! T" E# T# T! L, ?& N1 v#include <QtCore/qglobal.h>
+ h! W7 p( u2 O$ p# e. [8 B! g( Y6 I! T! P3 `
#ifndef QT_NO_CONCURRENT" [+ Q4 {% ?5 a) }
% `$ S; q, m( x$ G+ i9 m+ s8 S
#include <QtCore/qfuture.h>2 Y' \2 N3 n* V" H/ W3 H
#include <QtCore/qrunnable.h>
7 C: q& P, Z: Q# [: {#include <QtCore/qthreadpool.h>
6 Z, r& J2 K0 a2 X0 j' d/ b- j
' v" h, P: g" T/ uQT_BEGIN_HEADER
2 n, {, `0 b4 F1 n4 L7 F% \9 mQT_BEGIN_NAMESPACE* X' [) W) r! V* C+ W3 n$ a
4 z* R+ J% c9 D6 Q! }0 \" g4 nQT_MODULE(Core)* s4 d+ `7 b; J7 U
9 C2 t# X, j- t& G#ifndef qdoc7 h6 L0 ?0 Z6 T8 f4 m' C
r- L2 }4 y) S- H) q' unamespace QtConcurrent {
7 ?% Y. c) o% F$ x& S' @, o% M4 [3 S) p
template <typename T>5 ]9 }/ k9 b- Z* z- W
struct SelectSpecialization- B: z( H/ j/ e/ m$ ]. ? S
{
( s5 l' C6 A9 H) c/ c0 s& j2 ~4 Y template <class Normal, class Void>
3 V0 s2 I; @$ R6 \ struct Type { typedef Normal type; };
' M: T: R- G7 J1 e" f o};# B0 D( w! u; U. x) g
1 i; e% ^1 Q0 l ?template <>
i4 T( H3 b. Z* p1 x3 @8 nstruct SelectSpecialization<void>
. o5 `' I: `7 n) |$ e{4 K, [5 }9 J8 `/ V: D
template <class Normal, class Void>
, v% i5 N: ]% m8 j1 T9 f; ` struct Type { typedef Void type; };
* Z: @& {3 y1 S. C5 g7 G6 }1 n( R};
$ X2 F5 p+ S$ P9 M9 y: F
0 ^* [% r9 {0 o8 f! F: o. y! Otemplate <typename T>
# V( S U) S& O$ q) o; R' ]9 M" \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 W. E3 h9 v- {6 |{
, ], s/ I/ v% K, A# R* ~public: m9 x7 \" k) k1 D0 C
QFuture<T> start()
! Z9 {; a# c( W2 K+ R {
_2 }9 x% T) C) O this->setRunnable(this);6 I c9 b0 D U" W5 R5 i3 K b- ] `% s
this->reportStarted();
# H' S2 E& _4 n QFuture<T> future = this->future();
' E2 o. L: N, n w; p QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& Q* A; x. K# b5 U5 [1 \3 a1 D/ p
return future;( ]$ r V7 g5 f0 \& Y
}; [# j" f( a' O" p2 ~
+ _- V' K5 ^, B% v9 c/ j! w
void run() {}
8 C2 a7 }/ }% g: g0 G/ |% z$ X virtual void runFunctor() = 0;! q: C5 c9 t0 K( }8 z+ e
};
$ H3 X7 s9 U6 ]6 d8 C( M* @3 {3 s r/ n! {, {
template <typename T>
1 a2 _' }, X7 @class RunFunctionTask : public RunFunctionTaskBase<T>
* N4 G" v; k" ^& t3 D{
6 w: k, }4 y4 `. ^3 ~0 vpublic:% \# ~+ q; G! E
void run()6 n1 f9 y3 [4 K" b4 P) F! u
{8 o. f' f) Q- f, a1 y; m- R
if (this->isCanceled()) {
$ ~9 L9 a d, p7 w2 ^ this->reportFinished();5 ~. H- x, w5 U: i; k
return;
! y0 [/ K9 F+ @/ F6 U. @ }
6 j9 i/ j0 p5 r/ ^, e: ^6 L! ~ this->runFunctor();/ Y; C. n* ^4 p4 r
this->reportResult(result);
) E1 N/ I0 m; l) ` this->reportFinished();5 P7 Z7 T' B1 P" n- y& N
}
) `8 w- B6 u5 t1 u T result; E8 \) P! A: ]% O+ x. N8 i+ w# O
}; w6 v( a5 M% H$ X; ^& j
9 Z0 C" o. u/ |# u3 ~template <>3 u6 m# S& D$ |2 V# O/ ?( E
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
, c+ T1 z* G, s3 t9 r# T/ k- P$ z{
6 Y$ _* o, f9 G7 g4 U# N6 s7 H; ipublic:
/ S1 b, f( W7 Z4 y* D void run()0 b9 k7 h. W6 t$ }$ G: R3 H' [
{( u. ~( {, t7 S
if (this->isCanceled()) {
: X, r3 ` n9 ?! C% J0 \ this->reportFinished();( |- K$ m z. K
return;
7 ~( V/ m) w6 W- R6 \+ c }% P. a y4 S [% R- V# s
this->runFunctor();
0 [: o+ E1 e) R9 e3 m3 s; p this->reportFinished();
( ~" e* X) L% j3 W0 x+ b8 y: P }; }- m& |4 v: v5 W' b
};
6 ]# h% j3 L5 ?, h3 X( h# o& b- y
} //namespace QtConcurrent
9 b- B4 L6 b2 m: n) I2 F+ D ^4 S/ g" C0 b+ Q7 \; W
#endif //qdoc
. a5 x4 N6 h) l' @ r5 l! g9 O a! x0 u3 b9 X
QT_END_NAMESPACE7 b4 K. b/ M% R3 j, R7 B" u# j
QT_END_HEADER
7 Y) P: A! P! N, d' n; o) o% R9 n1 X' Y
#endif // QT_NO_CONCURRENT
/ r, P( X b8 h3 F: M7 G2 C; O0 ^3 V% d9 s- `/ n% l5 _' V! p
#endif
# G1 l0 a4 Y$ P
4 s W# z- ?4 K. U |
|