|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" a8 x8 Y: S1 \* l/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
( f/ p/ ~; r0 ~8 e7 p& G) O& e2 x5 F6 }, Y
这个头文件内容如下:
1 W0 V9 }/ q2 Z- F#ifndef QTCONCURRENT_RUNBASE_H+ _5 M( W; u/ B8 n5 T3 b
#define QTCONCURRENT_RUNBASE_H
* v$ B4 R& j3 T! C% a; g9 p: _0 j @ O: F, Z1 o. {
#include <QtCore/qglobal.h>1 ^" U: y+ c, o R
" H# Y5 g; K4 V: m# k#ifndef QT_NO_CONCURRENT* x! [4 c2 f* ^% K" B" n9 W
- t- Z3 W1 ^+ @& B6 w8 k7 g1 }2 T, V#include <QtCore/qfuture.h>
; H! B. p n! A( w* X#include <QtCore/qrunnable.h>/ k2 p# z, L) C$ C* s& y
#include <QtCore/qthreadpool.h>; ]9 [4 g( I7 K
2 j0 y: v' Y7 b$ i7 ?( C, P& L
QT_BEGIN_HEADER5 S. ?1 w m- w- ^' w# q' ]- U1 S
QT_BEGIN_NAMESPACE
, o, s- p+ l* c J
( P7 A& Q$ D: i- FQT_MODULE(Core)
2 [/ G+ g" H$ ~% o( ~, ]
. @* v& ~% J: f; U$ y p#ifndef qdoc# t p: j5 ?! H: T
0 m9 ]. n j0 x% L7 d* anamespace QtConcurrent {7 {, S- L* B+ i {# W( q
, }8 F J( _/ t8 [0 U) ztemplate <typename T>" H0 j% A8 e7 v9 Q3 H
struct SelectSpecialization/ K2 f5 F( S7 i6 K$ X$ @
{ L j, V B( y# [
template <class Normal, class Void>* k p" D$ _% l6 T
struct Type { typedef Normal type; };; J- r6 z8 T9 D D' S# I
};5 Z7 x6 D+ y+ p8 Y: ^6 v
3 G* l0 ?# u- C
template <>
* N' D1 j' C! z8 U) ~& b) Zstruct SelectSpecialization<void>9 i+ Z4 b$ P# _3 o: o( t
{
7 _* m# _: P, v( e template <class Normal, class Void>) v2 Z1 o4 c5 K* d6 l v
struct Type { typedef Void type; };: S: Q, Y4 l' B s( n5 o
};
3 L. ]2 k6 [# c$ O4 p* |$ Y9 e, b. u' N. M7 h) q
template <typename T>* p- g% g5 x/ _, A* {9 C, h4 ^
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable, D+ i8 O1 w6 L+ X3 g0 N
{& \* F$ k: x% @6 V! E8 f# T" M3 B
public:
+ g% S7 v P0 Z8 r) \# J7 g QFuture<T> start()$ \/ w$ v9 B% O) m, O; m
{
4 z, |$ c( W( ?% b, B4 R this->setRunnable(this);
. F( ]% r5 |9 b this->reportStarted();
3 C3 X) c7 g7 t6 h1 X5 H QFuture<T> future = this->future();+ O: d2 m* P+ q8 A+ a
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);- W& n6 R- V1 f1 ~4 k/ j7 |. U
return future;! I" b i$ n/ ?6 z9 H3 i
}
/ i. K( \ i a* {4 J: ~
! N: d: U" m6 H0 \8 k void run() {}
+ c$ V' u. g4 t4 i M* U) b virtual void runFunctor() = 0;
* b0 W s `& g; n6 |* A$ u" _};1 Q! u Y. q( v( ^. H: X8 e
$ u4 [! J8 s* v
template <typename T>
& s3 E& I6 c; b% Cclass RunFunctionTask : public RunFunctionTaskBase<T>$ K" b" W6 M% \
{
8 L- }+ q$ B' [ h& cpublic:
( q: I- }2 l% a2 y/ T void run()
( z: u- x* x3 B4 B1 S3 D1 S( H {
+ p+ Z& M ^7 v# r$ b' @6 w if (this->isCanceled()) {
% D1 S8 t F3 X+ o/ L this->reportFinished();) Z7 |) L/ E% Q3 ^2 g- @+ J& t
return;
" O H1 h, E. c }
5 j) {, r/ P# ~; f this->runFunctor();
( c8 @8 ^- p' p, A- }) @ ^$ u) Q# ` this->reportResult(result);
1 t6 e! c$ M T. p2 w this->reportFinished();" ^, O a- I# v$ S7 o
}
$ H; T6 U5 D0 P* B- b( N% T/ I T result;* m) E9 `7 ~: x; ?8 p- ~
};1 V" r& q0 x% A- h
& y/ k3 K* G' y/ E- f, P n
template <>
) ]5 ~1 O$ O U6 r8 \class RunFunctionTask<void> : public RunFunctionTaskBase<void>! Q' w% M; K3 I2 m4 q
{
6 e: V$ d+ J* J' s; Ipublic:1 H0 I; S9 o4 S3 ~
void run()! A, \: ~- U8 J0 T3 \- E1 Q
{
6 y2 i) g. T7 ~5 [* o if (this->isCanceled()) {
7 U/ f$ Q9 y4 Z3 `0 J% Q this->reportFinished();
, n! Z$ U+ h6 j# L8 C return;' n0 z' h5 [* V! M3 C
}2 P4 h5 d+ ^. m2 J C; o
this->runFunctor();/ }/ b8 k6 T0 K& |! O( u# B
this->reportFinished();
" ]# I% t$ p' z0 L4 T9 d# R. g }4 W. {; y m; g' ?6 q \: x" x
};6 U% V+ f, b3 w1 p( _
) U; i% A+ b, v3 V} //namespace QtConcurrent
0 ~* r* a5 f! f# Q0 Z% j3 [
2 m6 m/ } a. t3 J#endif //qdoc& ^9 O) W: G: B* S z
/ ?( D& R4 S. I" b9 }! L3 [% G
QT_END_NAMESPACE
8 A6 s' z( X6 L: GQT_END_HEADER
. t0 e2 s1 d8 t, z+ ~+ K$ ]+ @8 D' @; o( l+ Z3 z
#endif // QT_NO_CONCURRENT0 {9 X1 K$ N9 r3 l$ L
9 `& }9 e" T* e' K6 K5 \2 v#endif$ a9 b/ A s0 w4 w+ U% T5 _
' O/ Z8 X" l$ r6 p. T |
|