|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ f4 I3 F& T9 X5 K0 M& V8 Z+ W" m
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
2 Q- P# o0 {5 Z3 x$ `+ i* d F1 j( t& ^4 ~% _
这个头文件内容如下:
8 E2 R% S W+ p+ t) I$ n+ l#ifndef QTCONCURRENT_RUNBASE_H* ^/ M+ V1 |2 T1 Q8 x+ B' e* R
#define QTCONCURRENT_RUNBASE_H- X( W6 X: v; S+ v$ n
) G; m9 x, C& R# s: K9 Q" k( r }#include <QtCore/qglobal.h>6 @3 {/ d' M6 `" z2 [$ Y" Y
% p6 v/ Q% ^- S: u, v( s+ {#ifndef QT_NO_CONCURRENT
) {% H6 x8 v, w2 G: a p' h$ c q" g/ z0 {8 ?# `. w8 m9 k0 ^. j
#include <QtCore/qfuture.h>% R9 }( L# R' I& e" @1 E! E0 {" j9 j
#include <QtCore/qrunnable.h>
% n w# C, \; g' B' P5 f#include <QtCore/qthreadpool.h>
H/ C$ L/ s( c! G. p& G# V { y
QT_BEGIN_HEADER0 L8 `# q0 o/ @3 {
QT_BEGIN_NAMESPACE
( G3 F! A5 f6 x1 @, C6 \& t- T/ B5 y) }; K1 v ^% l
QT_MODULE(Core)
H$ z x- \: e: r6 O% _$ n
& U. f: b% |+ z$ Q( v+ ?6 v* ~#ifndef qdoc% J9 j1 \/ Q: d3 k3 E' e
3 R) X2 I; U8 l+ X( w
namespace QtConcurrent {
; a4 U' L) i: s3 }" |) Z2 I- b% b) I e( a4 r
template <typename T>
5 j) Y) |! w- F. H. G. Y7 ~struct SelectSpecialization
$ d m A- U7 L- r% \{' J) Z1 {1 b) d7 j! p
template <class Normal, class Void>$ x1 ]- ~ M' i* u0 l( m/ n4 t( }
struct Type { typedef Normal type; };9 T: \1 M0 a1 V' S* w0 }
};
* Q" Z& w8 _$ K4 ~. J5 W# [8 h0 H
0 z8 Z" {# j) R$ w6 [- N+ Ttemplate <>
* p' }* J: m+ @# ]& |) a. ?3 \struct SelectSpecialization<void>
6 `" ?# _$ H8 g* q( p2 m{
/ Y- e# }$ p7 W' ]& U, _ template <class Normal, class Void>% m& N9 ]& U1 X
struct Type { typedef Void type; };
0 Q, o% h- @- t3 k};
' U8 B. }5 j; _9 V' Z5 {- ?3 g7 c3 ?) s2 x, G6 C B
template <typename T>* |6 b8 E) i7 d& K+ w2 w" R, [$ |
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
7 T, }+ r: ^( l" u, W9 V, b{) n6 R- ^, q1 n9 x
public:
r w; N+ D8 _5 y. R* E8 L( ~' [ QFuture<T> start()& ?( L* x6 e. w. N/ a; D+ |: X
{
, s, I8 I; d, V K& A this->setRunnable(this);
9 ]6 |' B1 y, g+ z6 E4 r% M this->reportStarted();$ m8 {- G/ e6 Q7 i
QFuture<T> future = this->future();0 p' M9 M3 Y; p1 i
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) a% K1 z7 F# R$ ]0 D8 W4 E3 Y
return future;7 Q1 u: Q! Y' R7 x
}6 a: F$ z+ P' q C2 O4 z
9 o" a, J- Z& ]! O: H/ g7 W3 u9 F void run() {}5 {, U8 J3 t- [: y& a& `+ c% _4 M0 O
virtual void runFunctor() = 0;. @. ~: ~+ t5 C
};3 u& @4 @; Z/ ^ Z4 U- w* D0 {) O
) y' t! c: O$ _, ~) a( N! Dtemplate <typename T>
3 B: K( [# `; Z) z, P8 nclass RunFunctionTask : public RunFunctionTaskBase<T>* x, W" c( e- _9 E% k! G
{
2 F- u! v D5 N0 lpublic:; h/ @" k/ O! R
void run()
( y8 \ `( s) T+ J: ?8 Y {
6 p, c+ f6 j/ t6 R if (this->isCanceled()) {- y# a4 Y$ J" A# L ]4 A
this->reportFinished();
. M2 ~ j- V6 r& g9 ~ return;
* m" z1 a6 g* c0 D2 _( ^ }, i0 Y) y" D# L6 c
this->runFunctor();
/ U# ]" W9 o6 \9 B% }$ `# c* O this->reportResult(result);- v2 i1 J O5 Y! f3 x( n6 {/ M
this->reportFinished();( w$ q# O0 h+ n
}5 o. @3 A x9 O- G7 a) a3 m
T result;
9 a' L% i5 r( \8 A7 S& u: s5 L% R};
, v! ^- q6 u6 F4 u2 U3 U, J# `( X, R2 V4 J
template <>; P3 k" m7 P0 [$ ?( z: }
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
# u0 k) T, a5 |' B( C. I{1 p1 `" D/ @8 i% R
public:
) I L9 C0 v# F& d$ B/ h. } void run()
9 ^9 a) z* I3 y {
) n3 g7 s7 J: R: C if (this->isCanceled()) {
6 v7 o& v i7 g [- `) B this->reportFinished();. D4 P2 Q0 `6 b
return;
) q( [% N5 e8 \6 A }) v1 }0 s. |% t0 c. B% ?+ h
this->runFunctor();
. `! |/ p. T9 M, n$ _% v this->reportFinished();
2 f# o P* Z i. v }* V2 ]( J% N! r% l! Q
};& Z& n4 _& y! K) |
# V& J; D# x8 W) f% f$ F} //namespace QtConcurrent8 I2 R3 n3 R7 v! s' v8 T, F8 }
" E# `+ p# U. R7 Y
#endif //qdoc9 t1 t; p; W! B N# u& A9 M
& q% Q3 i% R& y' \% g/ P! e |QT_END_NAMESPACE
. d" h+ c0 x( C6 B9 cQT_END_HEADER
7 v/ w) a, S/ B- A, M) i7 C- Z7 [3 r( i. z& B% [" `/ D! Q7 J
#endif // QT_NO_CONCURRENT' P3 y# q; K1 [7 Y+ J2 D1 }
! u% e% j: G) M. D- Q1 `1 o& v. e; @#endif1 u$ n/ R# S8 Y: J3 h! N
9 ]/ {1 R+ q2 V1 ^ |
|