|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
# f- |( P I0 o- c- n. 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'
+ `5 T- z+ L4 s5 Z5 E3 j6 m( C( y: d! P0 }0 S. R
这个头文件内容如下:& G1 _$ p' q2 \/ P/ p Q4 o& p9 I
#ifndef QTCONCURRENT_RUNBASE_H8 r8 Z# C8 x7 B* x: A& z
#define QTCONCURRENT_RUNBASE_H
; v/ J) o+ n, D7 E: W( }5 }4 o1 `0 D6 b1 Z
#include <QtCore/qglobal.h>
. e( v& B" ^( M- r5 ~: U
, r' b0 W8 q( G1 S' z& _ A9 t#ifndef QT_NO_CONCURRENT8 }6 q) _ r- n
. i5 x- Y" x2 r; s. Y4 K) i
#include <QtCore/qfuture.h>( g) j9 n) P) Q4 G
#include <QtCore/qrunnable.h>2 M J3 U; L- X' J, a8 _
#include <QtCore/qthreadpool.h>
: g( q; j8 L7 g/ _6 u3 ?6 x* y1 _4 N
QT_BEGIN_HEADER9 z' r5 u& d& N% E4 N
QT_BEGIN_NAMESPACE: z5 D! J) r& J2 p2 t
) j" s- n% t7 F) H
QT_MODULE(Core)
$ z D1 Z0 C6 g8 @$ j, K1 i" C3 B& l" N. n5 d* y& {3 I% o+ y
#ifndef qdoc
! d+ D b! I3 v, E. h7 H4 W6 w( D; Z1 L4 d! B) x R6 |4 j
namespace QtConcurrent {7 X) n, {" ]0 }0 b$ Y, v5 ^# ?
) h$ D0 N6 R. d$ I, F; i% C1 `1 g
template <typename T>
; U0 B$ M: U) @% C* N- Dstruct SelectSpecialization E6 l& G, }# ]$ H7 q) F2 o" r
{
. `- m( y; |, c) | r* u: p6 w& ` template <class Normal, class Void>1 c* P; i* H2 q# L$ H) Y2 [
struct Type { typedef Normal type; };
/ A+ R) \0 j, g* Y: ]) K( X};: M* E1 B' T' D6 c j
( `0 A! N1 i: f' w
template <># C* n2 U' ^1 H9 ]* e" ]
struct SelectSpecialization<void>' g7 x1 ~3 n" n1 ~2 Z/ T* J, Y) O
{( c8 g0 Q1 R, }8 W
template <class Normal, class Void>
# _, p- Q1 ?- V' k% Q struct Type { typedef Void type; };+ X {: D$ r1 F# \1 [. X$ P
};
# a8 t: F4 L" S% F" L4 {
4 x) ^, q. ?& r* S# W) w* S- o6 Htemplate <typename T>+ H; t, S! R5 O; E
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- F" k9 ]! {; B) P @{
5 C& p: ^( h6 F/ j- o; ?* Y3 tpublic:, K! U! n- T7 [( F/ M& l' G* ~
QFuture<T> start()* I3 g4 S- Z) V a Q0 ^
{3 b, i# \9 I [7 R; I5 w
this->setRunnable(this);
: u! M* Y2 C( b6 W# t6 Z+ ~0 \ this->reportStarted();. {9 s2 `+ R2 {! E1 ^8 X
QFuture<T> future = this->future();+ j) X& h0 g$ O/ r7 M- |2 R
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);# ]" \- m! N/ s# k! j3 z
return future;
, j6 _ M( u: I! j2 L$ F1 K }
- I1 k7 X' c4 w, h2 ]" G$ b. U s& d4 ~$ O5 z+ Q9 ?
void run() {}
: u2 W! g3 W. u8 o5 Y# l" D4 @ virtual void runFunctor() = 0;. n2 S, c8 {- b
};5 ~5 F$ N& ]7 P$ f- U" o
5 d. `3 i5 J5 T u7 n
template <typename T>* c) b' I$ c. E
class RunFunctionTask : public RunFunctionTaskBase<T>
9 y Q2 G, V( [* `3 j U{1 R- s5 _/ k6 h# g1 _) B5 R" v
public:
& f3 q/ E# h2 Q7 }* @- y. a+ h& x, N void run()( o& Q' ~1 b a( \$ U1 S
{
3 l$ f/ f! E$ r" B; Z if (this->isCanceled()) {
( V/ u7 l* ^1 B1 K this->reportFinished();
* e7 Q2 F! c& e" M return;$ z$ V' g) e: ]: N% u. K
}
% o, H6 Z4 ?5 U2 i this->runFunctor();' f; {) @4 k5 Z5 X' o
this->reportResult(result);
1 w1 a$ k8 X' P$ F+ L this->reportFinished();
9 i1 K6 {" E- n O" n2 V+ d }
1 E0 W+ k' k" W T result;1 ^, K9 x% ~$ `5 ^; C- o$ ?
};
9 m+ d% }/ K' {' Z+ f4 b; U9 ^: J3 Q: [
template <>
' I& G& k, f3 |' {8 d7 L9 f% _+ w$ Dclass RunFunctionTask<void> : public RunFunctionTaskBase<void>/ a! L, M1 ~% @+ N3 y- w
{
9 T) P2 f8 j7 Qpublic:
. \+ {% z8 u7 {3 S- N void run()
6 `) B. s1 `0 o1 p0 ]1 O+ {6 y+ K {+ r F G. o1 |& x
if (this->isCanceled()) {
# j8 x# X4 R) Y8 R) S: z! ^ |2 S this->reportFinished();
5 |9 i/ c- I- e- w* s6 }( V return;
2 r/ `7 k' l" i5 M% B7 u/ a7 H }& K: n @4 Y+ R+ d7 f1 q1 F
this->runFunctor();1 t8 h% O5 N) D# K* u2 o
this->reportFinished();2 ]7 K2 @+ X- n; f3 u S
}
4 d/ ^! ~" X M. p) b, k};+ k2 g2 E: s( \0 O8 c6 j) Z& X
% e4 ^3 D" b9 z: [+ ^# ~
} //namespace QtConcurrent
2 w. V3 y# c- F" t# Z, j) W4 S- ^( H( e- r1 @9 `) F: r% J& V( M
#endif //qdoc5 j; |$ N5 ]5 J9 Z/ b
5 p; K/ k( Z: n/ r5 h- n5 CQT_END_NAMESPACE$ B2 `1 S3 A6 D, O V' z$ M
QT_END_HEADER& E G6 R9 k w- q( h3 @5 s
o: D: h- O+ a3 G* h: O/ R#endif // QT_NO_CONCURRENT- I5 _8 W: T( Q: @( |5 q
9 W6 i9 R5 [' @7 M
#endif
5 }6 ~8 }. f- B `/ `8 {! W
# ~* U; h% L1 I& f, m7 ]8 r0 | |
|