|
|
我对syslink进行交叉编译到arm,但是出现如下错误:* f* V8 z: a; @1 q* q' [
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
; s' W- o( h9 z7 \2 g `3 U6 ?5 e- J/ p$ ^
这个头文件内容如下:6 f- Y4 X' r7 p: ~, Z% c
#ifndef QTCONCURRENT_RUNBASE_H/ M+ h3 Q+ B% e8 @# u
#define QTCONCURRENT_RUNBASE_H7 Z- a" O: @# |; A* Z' u
' i( B, D2 x/ @6 F. d& T
#include <QtCore/qglobal.h>
- ]( ?, F2 h! t
2 `6 S% i1 E- j) r#ifndef QT_NO_CONCURRENT
4 G' V2 e1 ^* e5 Q- b8 ?+ G& f
6 E7 j. }: \" ~! S: z5 e#include <QtCore/qfuture.h>' r% \1 i9 D7 ]$ j9 d4 l0 ]2 I" v
#include <QtCore/qrunnable.h> S, [5 `% E1 A
#include <QtCore/qthreadpool.h>
( |1 _! z0 _8 n* J# H' t' @! d+ [, X y! \ B8 r) z- Q
QT_BEGIN_HEADER
/ g6 P( Y! i; J/ D( fQT_BEGIN_NAMESPACE
5 ]/ d9 N" W+ K5 J& d# N4 q5 W4 _* S" j5 `: O
QT_MODULE(Core)
+ [+ y2 B9 W# w* Q, s R
! o# X" l/ u- F. A5 M#ifndef qdoc
( }" ]/ k% ?0 m5 J! J
' w* J% R/ O# e* U- ]+ a5 N3 Jnamespace QtConcurrent {1 l* j6 a& d; a
5 z) C# g: i- Z' D9 Htemplate <typename T>5 ^# c1 o# L: Q4 {, f. {
struct SelectSpecialization
. ]/ C6 O8 U5 x, m9 V5 n{
+ V5 Q; t: ?8 w" m4 T template <class Normal, class Void># `3 N- k0 F0 D9 ]
struct Type { typedef Normal type; };/ x! {. |$ ~2 T6 B9 R9 e
};1 T# B+ Q5 c) s- R
% e( u$ i! K$ \+ S' @template <> {4 A/ {( D: B2 y, p9 q" {
struct SelectSpecialization<void>' |2 E) p5 r$ m s) Y/ U8 j
{2 i+ b7 u2 R, p! ~* [
template <class Normal, class Void>9 i; c* R- h x: k* o6 |( Z! S
struct Type { typedef Void type; };
& B( p; I& w, X0 d: I4 @. |};- g4 o( U" T/ W! S
2 y7 N- q$ x7 G
template <typename T>
" k% K# d4 w4 g4 V4 _class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable2 t; q4 ?4 m9 N; S2 ~5 d/ P* @
{; n0 y- ]8 ?' k. S! L4 L2 [
public:
# l; K8 [2 z* v% H4 Q5 _ QFuture<T> start()
! n$ t, [0 N: I$ A8 y {& I3 V4 s( @; P% \, j
this->setRunnable(this);
4 }, L/ X2 e9 N( U this->reportStarted();
a8 k# H6 ^) _, T6 A/ B3 N# O8 l. p QFuture<T> future = this->future();
2 u9 _! F, B& y) l QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 ?( A; L+ x/ C+ ?% p# ~ return future;5 k0 f! B+ x: Z/ H1 W# s
}6 p/ R: [9 G9 j6 r5 s8 j$ e9 z' X
; f) {% z9 v! e) u5 I& h( h
void run() {}
% q: B3 |) x0 l0 V) {; S5 S virtual void runFunctor() = 0;
: M$ q* R. Z! g. U1 C};
' W3 v* s0 }3 i8 `- p
) }* m; A9 X( B S- h! atemplate <typename T>
7 [2 P5 {3 H& W' Gclass RunFunctionTask : public RunFunctionTaskBase<T>
2 {5 q0 [: B$ ?5 u4 t& S V{
( j# m" l. ?& N. ]7 zpublic:
" F6 U$ ^( f) z void run()& j$ H9 J( D5 y. o. h" x. ^
{
$ ]+ h5 W! w# ~- r: r if (this->isCanceled()) {2 a: D- I' o F
this->reportFinished();! P7 A9 ]- E6 v
return;3 ~( q" l. k; E
}
& X8 t; L0 I5 F2 L( a4 M2 ^ this->runFunctor();
9 k8 I3 D) f( R2 y7 S) G# |# Z this->reportResult(result);
5 U1 S8 o; ^6 F: O this->reportFinished();
6 ^% w: B- x7 o9 h: W- w" Q }% L; {3 ~4 ~/ \3 a' i8 r
T result;
1 `- Z/ C6 G1 z% X. |+ |};# h6 E& Q5 Q" d; E9 g. P
, ]2 N3 R8 m, H2 D9 Gtemplate <>
+ b* B% \$ S) F" f+ g+ aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>/ j: b, ` g4 L( [
{
" `0 ^: v; i. F0 j8 k+ Upublic: X! m1 n+ N$ U/ T: r( Y- v
void run()
0 F- A- F/ w0 [! w3 D. w( d {
# ^; R* r* ]. I j, n if (this->isCanceled()) {- [* e$ r. P, S. [$ K$ z
this->reportFinished();+ D) ?' W7 U' i! K' I( b( Z
return;* h( R& l9 m# | W8 _
}
4 ^) d3 W- e: j+ h( L* h! k: e- X this->runFunctor();
! J: }' ^& x. Z' {+ ?9 y. g this->reportFinished();
) e+ [. I! p8 A }* v4 Q! x; |( T' z
};' w! k1 F7 m* t7 U9 C. T
2 a* _- U6 c$ O} //namespace QtConcurrent9 O* N7 F: T0 g
- `2 D. | y. \3 o L
#endif //qdoc' t$ }' S: H6 q: L
5 A& x& P' O" C1 A2 Q+ s/ L" v0 J$ A
QT_END_NAMESPACE
* U' M5 ` O1 @0 a, |2 P9 T! eQT_END_HEADER- p% p6 k6 i- I3 D/ I
- r% m5 T( t$ z1 c5 V" g! e/ `
#endif // QT_NO_CONCURRENT1 {' S6 N: d6 w' f7 M: }
/ p. M4 H2 Q# A# k; ~8 w#endif" D4 D0 e/ ] j8 v- V5 r# I
+ Z# z* C2 f( K2 A( w2 I- l8 m
|
|