|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% T* J; S" \7 {7 R* m% x
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'& O# q7 x: j4 l. ]9 S, h
. Y$ E, R* C% A1 M6 l这个头文件内容如下:
: x- ]( U+ L6 n% Q; M( S2 h3 ]#ifndef QTCONCURRENT_RUNBASE_H
5 X% H3 g7 y& r& o0 S( U#define QTCONCURRENT_RUNBASE_H' u, a7 g- H. i) F
, k. j6 L0 j, F6 D# W#include <QtCore/qglobal.h>
" n4 S+ B3 t4 N. v/ t$ k. I. E& w6 ^; p! S& N6 A
#ifndef QT_NO_CONCURRENT* k" q' w2 f' O4 h7 `9 X# [
/ v- e1 F8 \2 o8 Y# F
#include <QtCore/qfuture.h>
- @8 V9 {' P2 v, l* }; M/ H0 j#include <QtCore/qrunnable.h>
, v+ D! V c Q; `3 L% L#include <QtCore/qthreadpool.h>( J) W9 ]! V6 ?$ U1 g5 T8 n
6 g; E) E1 J4 e! hQT_BEGIN_HEADER. i$ h, U8 q; i7 m3 U
QT_BEGIN_NAMESPACE6 w" F% b. G9 Z, L
1 C1 u) n& M `! [QT_MODULE(Core)
& h4 v6 G: h* S N5 _9 Z
2 X9 ^; U1 ~8 ?' F0 O% F#ifndef qdoc/ g" V7 @* M: }
+ A% S& F/ z( u. rnamespace QtConcurrent {
) k7 O8 ^+ o0 c9 X3 {* X1 v5 B0 P
, H2 o$ _+ |1 L; `$ M4 B z; C) Ztemplate <typename T>/ r4 L, c& \$ ^, G4 {8 ?% l! p
struct SelectSpecialization. c4 i8 y& K" G1 Q6 P% l# f
{/ E) p% O5 d: f h6 V8 H
template <class Normal, class Void>
- o- J1 L6 s+ ]& [ struct Type { typedef Normal type; };, \: e7 U- H. A0 j$ d
};! k% S i6 U8 v8 W+ a
: Y1 w7 L) }8 r0 Y4 }# t/ I$ ?
template <> @: Z4 a( E1 W. x9 |0 c0 K
struct SelectSpecialization<void>
( B f$ ?, G- h/ _{
8 p$ O* O' v. ?1 [$ |7 `/ f3 X template <class Normal, class Void>
" f. J' P8 P- s& Y struct Type { typedef Void type; };2 T& Y& N7 u7 a+ o6 s7 N
};
% b# u6 O% q6 N# O8 e
6 Z& _" Q9 a% \) X1 ^( Y. M6 R ~4 Ftemplate <typename T>( O5 I& U8 P" l: N: S: T, B; Z
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% z* E4 U' Y" J, Y& c/ S0 g: e* X{
N- y, W5 h8 t+ lpublic:- p5 M) L0 ]" |8 Y+ `& ]
QFuture<T> start(): \6 {% T; V1 h& `
{! c9 } W: B$ W
this->setRunnable(this);3 m+ S, I! s, Q q% J2 |( S8 K
this->reportStarted();
8 j" C: W9 ^" Q+ I QFuture<T> future = this->future();$ e; E* W( F& C, @0 _$ ~% a
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); h' r4 G7 }* B5 a. R
return future;; y2 [/ ~1 v. Z/ N& {
}
/ S6 i" F! T) S. T. t t3 m7 ]$ y7 V/ K% c1 q# B
void run() {}* ?, {. t1 `0 E' W- \0 Z# `
virtual void runFunctor() = 0;2 q n" V( @5 k
};
9 d2 A, E7 ^9 f& B4 |% ~: y+ h' Y- _- ~
template <typename T>% m* i! ~4 W7 r- F7 m
class RunFunctionTask : public RunFunctionTaskBase<T>
& f' Z3 H1 `8 w; L{
H5 n! B& S3 Z @; M& P$ spublic:
$ M& n+ B4 U! j- F: V$ m Y void run()
; @& B+ k! T3 w, F+ U( }$ _ {/ d- ?0 N( q/ k
if (this->isCanceled()) {) ]3 |5 ^0 e a# |1 u% h
this->reportFinished();
: _. s% }$ v1 W9 a# T. [, x return;% E4 R: C- y/ ^8 m2 x' q# L8 A; \
}& J3 w0 r* |9 w6 }5 o
this->runFunctor(); l4 o: o* v3 }* n
this->reportResult(result);# x1 d2 s- r" }! ?6 Y3 `' J7 x8 W
this->reportFinished(); I& T( Z: B# f; |
}# s2 d* }6 n6 f, { K
T result;: E5 o) g6 h+ q) |! X: Y- b& h
};/ _) i: s: ~/ w& ^- ]3 _* C
( [" ?8 z$ G, ]template <>: i) h6 _2 M$ d3 e6 T7 R1 L* B
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
( w: g6 i' E& n- }{3 Z1 [9 B$ v5 B' s8 k
public:
9 i1 d. C' ^7 p/ M void run()
3 G6 [9 x2 _4 |- s1 z {
- ?2 D6 V1 Z9 _! _ if (this->isCanceled()) {% ?: Y- S5 l# L# R0 `( C5 \* X4 X
this->reportFinished();
- C4 Y. C7 P' e7 D' m. z return;
7 ]7 |% |7 M- N+ k; A }
, P; o: D& w( T6 ~7 C) s" l this->runFunctor();
# B2 o3 Z/ `2 m: j- [5 t this->reportFinished();# ^3 a3 ^; w; O6 i- [) x# P$ |
}& _: o: P4 s, f
};* y# L; _7 }, G5 Y/ K2 h5 W8 W
* I! W3 h0 n$ h/ D( \( ]$ G: ?
} //namespace QtConcurrent
3 ?6 f2 k4 w& L- P# Y/ \: u. g+ w4 e# C. |) k9 n6 y/ ]8 I3 a0 _
#endif //qdoc
. y# C. A3 I- u0 w- Y9 Z$ s# J' R: p
QT_END_NAMESPACE0 l1 C, F1 _: C4 U8 y+ b& `
QT_END_HEADER
( `7 R j0 a, Y" B" Z5 e* _6 {+ m7 z* I7 c8 ~ X* d
#endif // QT_NO_CONCURRENT8 g% R# ]" L" d$ `: g
( [3 C9 T$ |: T5 w! _& y#endif
5 I, u: q$ @ V
# s) N6 H. f. U; o" b: \) u |
|