|
|
我对syslink进行交叉编译到arm,但是出现如下错误:& r4 x* f4 [% f- h" [6 ~: s
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: r% q8 x7 N3 l6 ^2 A7 F1 G% Q* M; G: V; n% L! K
这个头文件内容如下:$ m4 ~& \1 M; A4 U! [ \: K
#ifndef QTCONCURRENT_RUNBASE_H
7 `" ~& W# t% u% I8 I% [, Q. N#define QTCONCURRENT_RUNBASE_H7 }% b) L+ y: c( b0 E
- P2 `: o0 X7 R: k7 ^$ h#include <QtCore/qglobal.h>* W$ C: x" M/ v, i ^( N
m7 K% j6 C7 l! |- H# b#ifndef QT_NO_CONCURRENT
. m, H/ I5 U! h2 P w0 F$ y- X: m
* p* m. A) f8 r7 N; O) m1 U( m#include <QtCore/qfuture.h>6 {, l; k5 `0 W6 @3 N
#include <QtCore/qrunnable.h>
& o2 {& X- X" n' P& @% F1 q( a#include <QtCore/qthreadpool.h>
' _: v9 u8 @; n+ h, L8 B; N0 w* D* B, X9 }6 ~3 P, i0 D
QT_BEGIN_HEADER$ z) D1 [! v$ {
QT_BEGIN_NAMESPACE
: \8 s6 y* o/ q1 ? N1 P" {( f$ {! D+ F: w* [
QT_MODULE(Core)5 D; Z" r( t7 h. u5 I: Y* M0 d
6 C8 }' }( m) i# {9 Z; R#ifndef qdoc0 ~! n1 \. J8 ^ v! l/ g; B
8 @6 `7 G4 x/ @( R+ M9 H0 t/ `8 Unamespace QtConcurrent {) G0 w4 ]6 L9 R/ @5 X# F
5 r. E9 Y- J6 U- b% ~4 w% `
template <typename T>+ G( o! k# u( G: _- @8 h
struct SelectSpecialization
, I2 S+ U) c# o' K{
8 Y# p% K, u% O$ Q' v# ~+ y template <class Normal, class Void>
@ X+ z9 L8 z2 Q5 | struct Type { typedef Normal type; };. R. o* z* W+ d
}; w) r& j' _, t6 a( |0 b0 l
$ v' H% o/ ?: _- H
template <>
" X. o' o3 M* A6 h( E* \! H$ ostruct SelectSpecialization<void>9 Z0 q: W9 ?: _) I
{
$ H9 I5 z* ^, p. U( Z9 i: Y' d* z template <class Normal, class Void>
0 p9 m/ [6 ]1 U9 {) ~ struct Type { typedef Void type; };4 T; v4 Z; @* ]$ m$ [/ u$ [3 @9 B
};
, p) A# ?7 E& `$ e) i9 i2 K+ w# P/ x
template <typename T>
j( w9 s' l: Z, E1 F8 Vclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- ?3 l2 h' }) t) A: W9 L; K{
3 K! e* l* ~( W Rpublic:- C. j7 Q% V8 p
QFuture<T> start(), q* _" D, Y5 E/ b- R
{
# D# y1 U$ w4 q! P3 A+ Y& r2 H% _ this->setRunnable(this);
6 v# l7 A# ?3 [ this->reportStarted();
8 u, K* } D+ | QFuture<T> future = this->future();! ~, Z9 ]1 q" Z5 }& y
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);, j U9 G& Y7 e' P2 e2 `) |
return future;
- s' r6 @5 D- ^5 D2 y6 F/ N }
5 P$ n+ S Q; r# Q' p2 e+ }) l c9 n9 ]4 R. r& c( ^, K
void run() {}
. s! s+ n8 B9 F, D5 m virtual void runFunctor() = 0;/ o0 _% F; P' W0 m
};5 G9 m$ Z, A$ @* @' Z* {
3 V- d+ Q9 q; x. M& p: Mtemplate <typename T>
, ~% @/ K3 H% H- ]; i& D" |class RunFunctionTask : public RunFunctionTaskBase<T>
3 G+ J# k' q) X& V{
$ T2 Z) d* Z5 f% i* g6 t8 vpublic:- a6 _2 D6 h, S" \8 M8 h
void run(): ^3 A* j0 |7 i) u
{( ^, n: O( E7 h. _: U& e
if (this->isCanceled()) {
4 K/ \5 A5 C# t7 u: a this->reportFinished();! C4 c' w8 f8 J5 A# s5 b9 H
return;
; ]- m) A' u; H/ H7 V. | }- b* Q- t) N4 p; Z! {
this->runFunctor();# p7 c6 m7 W! E: j& K) \
this->reportResult(result);
8 I6 h4 ~2 |1 B/ t3 Z2 v; q- W this->reportFinished();
! T0 {& u0 ]5 w4 I2 r) ^% x0 s/ `7 s7 y }
4 N! ^3 t4 g9 W# f* G8 o$ u T result;0 Y1 a/ ^+ D6 w& }) z
};
( a8 P( a/ P- ?5 N6 l9 k7 M# C+ t
* e1 H* g6 W o$ ^template <>; e; u; \/ ?' J
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
@9 D* r% o' d7 L" x" K{
3 c/ ]. X1 j4 c( H9 L6 C8 d5 ^ Ppublic:
& D/ Z# V, i1 g1 ~( b ]0 @ void run()) u2 X% c, J/ Y
{6 h e( ?5 h! R9 X; X0 C
if (this->isCanceled()) {: y6 U+ a8 p- T
this->reportFinished();
+ r% Q, D, M- t% H f return;, w! o ?) N- g3 Q
}
0 m1 z7 {. U# M: a0 p) k this->runFunctor();1 j; a( G4 M: L$ e) n) U
this->reportFinished();. j' ~9 ` t1 `, Y' |5 G9 I
}- {, J; q3 e3 n8 j
};
: |1 U( X; S: m' [& N4 J' i" A. N4 R) j
} //namespace QtConcurrent3 m4 W, W6 w7 g4 B2 g
3 U: a# m! n( N
#endif //qdoc
8 ]% [0 j2 `( q
# G; X& W" m5 t2 @8 IQT_END_NAMESPACE
. S- }( d$ ]1 R* jQT_END_HEADER: _. ]4 l5 j% R8 w) }+ n2 F
) U* [3 Y4 I% I& U6 h
#endif // QT_NO_CONCURRENT" B& T( U& O) W* N6 l- U9 `
/ d! i2 V6 z& E- [
#endif
* ^; @8 j R7 T ~# P* B6 I" w& z2 {* @% Q% K& u
|
|