|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. M0 q6 A) W! X7 V# G* J" W$ I4 ^
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
4 S+ h: S; k* P `. [) l: Q1 _9 G! J1 i' }" F, R# z0 [( Q; O
这个头文件内容如下:- {# [! M) j; i$ [. z5 |7 J
#ifndef QTCONCURRENT_RUNBASE_H
, L; r- Z+ X% x* ?/ J#define QTCONCURRENT_RUNBASE_H
; Q- {0 d+ h( S' N$ D) J/ [+ s# J& M* Q& {& J' n2 R
#include <QtCore/qglobal.h>4 Q+ [/ c& \$ L
; T' `: B$ @$ ^0 R) i/ B" B; ?#ifndef QT_NO_CONCURRENT! e) p0 q. n4 b9 A
8 b: I4 [' x( w- f3 J
#include <QtCore/qfuture.h>
9 g; ]/ h: J2 G7 B- u& O#include <QtCore/qrunnable.h>
: S2 Y$ U. P- L$ W# m$ ^#include <QtCore/qthreadpool.h>. f, P/ O. _+ h1 S' Y
7 B$ ~4 g5 b& }7 V' wQT_BEGIN_HEADER
. K% G1 Q6 z3 V- ]7 ?/ b7 }QT_BEGIN_NAMESPACE
( R& c a: P1 v$ {# d$ J' ~5 g( c$ e0 p" x/ G8 N1 x
QT_MODULE(Core)% F3 ^, G) G/ p9 ]) O8 t
- B& o! K1 G; ]- I#ifndef qdoc# U/ }7 q1 l# _- N {
5 Z$ ^ V% L9 j6 F+ _6 Unamespace QtConcurrent {
3 Y6 n U2 C$ y2 X' W, F
0 p7 O2 ]4 A- t# U4 P, q9 [ b+ Ttemplate <typename T>
3 u: j" J3 m5 R5 Q) \struct SelectSpecialization
; C, Z c8 |1 i/ T{
7 z: @5 R5 b' ]+ A4 y& y$ y template <class Normal, class Void>& G# z- h. w* h) E6 V
struct Type { typedef Normal type; };
( S+ j7 ]) h2 x2 \' X};/ i- j5 i& m% i- \
2 \+ \+ z3 z d# Y- ~template <>
0 v3 @. Y3 G* n$ j; Estruct SelectSpecialization<void>
: F% v8 b7 R* Q; p# H2 A{+ v7 M4 T% r% B- n) d
template <class Normal, class Void>$ O4 C" d' u! i7 w! |2 D
struct Type { typedef Void type; };
* U& r2 |( O3 w1 h z! |};
3 @# Z4 A/ y! F5 p% Q/ ]. M, X$ h8 r% k5 D
template <typename T>' S* m4 s+ J7 T% z
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! u" t9 _2 R7 f# ]8 |, }{/ O; M2 o1 x5 Z$ q5 m3 S
public:
1 c1 V7 l3 ~% v6 X: a% j QFuture<T> start()
0 R7 N6 ?0 W4 H2 ^. W8 T {
, V! e) n0 l3 y this->setRunnable(this);
' ^, G# A. m3 K this->reportStarted();5 W' o. r8 a% x6 O% d( f8 S
QFuture<T> future = this->future();. X5 v/ J) D( D# J) ~6 i
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, q, ?& u* a- E1 g return future;
o# X0 A _1 I3 { }, V+ ~9 R# x4 u9 `1 r. ]# W9 R5 a1 k
) N& h+ \8 i! g: ^! Z* I
void run() {}
7 m% O0 h: O- r, k3 o4 g* x virtual void runFunctor() = 0;1 G, ?9 E! }- {; t
};
3 K& G1 z" _1 B" ~" n4 p
0 O+ ~5 n) F2 T2 Z* @1 g! Rtemplate <typename T>& N4 r9 \# I3 Z, p" O
class RunFunctionTask : public RunFunctionTaskBase<T>
' {, ~8 ]! p5 ^6 |) F{
1 }3 Y9 @9 i2 s+ ~( tpublic:3 K) i; K `: W# a( P) ]4 W1 D- W: E
void run()! j7 O9 @. K3 a$ H: W
{
: r9 w: `" I. ^$ u" _ if (this->isCanceled()) {% |0 d7 {8 c# h& t$ u& r, a
this->reportFinished();/ y! H7 `, G9 \3 R3 H
return;2 T7 v7 h( q/ a, U1 g
}! I. l; J1 V; z! v% s( l
this->runFunctor();
8 R0 L8 M; z4 a8 _. V! ]: `1 D this->reportResult(result);# @; B# ~7 w6 N
this->reportFinished();4 q4 O) ?- m* M6 O2 M2 K( p9 H
}
* _# @8 B% H" O5 @( G* q T result;
+ L/ G' f- i' `+ z; l9 ]' ?- _: b5 ^5 ^};
1 Q/ G' g2 t) [/ _. V
. v+ ]# Z3 w+ j: ?) P9 s7 |' P7 ?template <>
- b8 D4 _" Z( y+ A/ mclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
. e0 J+ f0 }9 N3 x{9 |2 l3 x% v$ W9 Y6 s
public:! N5 F3 S% U' \ s0 j3 j+ ^" ?5 A$ W/ X
void run()2 D& x% B+ {7 d$ a& t5 d
{7 i0 C" J1 X+ F/ A
if (this->isCanceled()) {$ {* a; Z; k. n d1 C
this->reportFinished();
+ V9 y" K6 a! t return;
6 v; e* [( o t6 F* q" P( N }8 W9 W3 }/ h: g4 z1 ]+ I' D$ Z8 R
this->runFunctor();
, \5 I1 f2 B- L; V this->reportFinished();# _' q- [+ b: }. d0 y. r
}
% m1 W% n; x( y9 D" z};
: U Y: n9 u. t; A' i: y" x% `; e( y
} //namespace QtConcurrent% r7 R& B+ M; I) K
9 E& L5 p9 R5 j# p; K6 }# T
#endif //qdoc
+ i8 m" v4 H% z, l
1 B, u% W9 l: m6 h/ X# NQT_END_NAMESPACE
W+ S$ X/ h; H& o3 `( HQT_END_HEADER
, C7 ^1 J5 B9 V' {- q( B* |& z; Y2 P8 @3 }3 G9 R$ m. a
#endif // QT_NO_CONCURRENT2 B1 M$ e1 }1 V; v2 r7 O& O
X) v# B' \ ~* \% g+ T- g
#endif. S! _/ u* n) V) F' {
$ P; A- Y* i; t4 G1 |
|
|