|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ ^ c9 Z" k3 v' r7 B/ R+ }
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 a8 W. d! Q& J1 Y# l0 j; D3 R! d+ e" d- [+ U; X1 X# J+ b' ^
这个头文件内容如下:% ^1 z- |6 F" g) j6 E6 |
#ifndef QTCONCURRENT_RUNBASE_H
( i ]# N' w y; v#define QTCONCURRENT_RUNBASE_H
7 O, \ U; |. o" F! J9 f
3 B7 Y' h' B2 U" Z#include <QtCore/qglobal.h>" C, `2 t0 e7 S$ ]( }6 E9 _
9 k7 Z* }8 v* P+ P6 A" O
#ifndef QT_NO_CONCURRENT
" ^# A8 _' @& W1 K
7 S* |$ c, }- X" A#include <QtCore/qfuture.h>
1 }+ Q' c1 B5 N$ c. M; J: t#include <QtCore/qrunnable.h>
' u4 u/ i3 {# @1 `8 e& r% P#include <QtCore/qthreadpool.h>9 l+ K8 k- Z. v; y X m2 {& u
1 ]) \% `+ g* {+ o
QT_BEGIN_HEADER3 T% w# k, I' m8 c9 _$ X% v
QT_BEGIN_NAMESPACE' a4 e3 |8 E8 ~2 P% Y$ j
) B4 @: [% z- l4 ^" `6 ^QT_MODULE(Core)
9 {, H# S3 [; {# e
5 @. o3 A* }! @" C( Y* c#ifndef qdoc5 n6 w5 N5 L' g& P
# `- \ ^4 x& @namespace QtConcurrent {
- e% y: Q* ^, z! F7 b. b" F
1 A: p1 U% _7 \! Y# ]$ ltemplate <typename T>
! x n: s5 a+ Z+ ?struct SelectSpecialization! ^9 u1 f9 T- ?) q: [
{2 y, Y+ K! o% |1 G, Q4 q. r
template <class Normal, class Void>
$ `( s, x/ D3 S( c# y9 a7 d; } struct Type { typedef Normal type; };; _8 n( e0 z0 D/ D( D- |* o
};1 m" M+ u; n" N) X3 B* e( u
) c. k ?3 ]8 p4 ?6 Q
template <>/ H' Y! D3 X+ `& g
struct SelectSpecialization<void>* V+ d5 d# p, T& Q' E5 K- H1 \
{
) ~& Z. H$ P7 E S; q8 O template <class Normal, class Void>
4 k$ U6 R; |2 P0 L, {5 ]2 K struct Type { typedef Void type; };3 B2 z) N h; J
};
7 D. x9 b8 n3 O: R' u7 N5 N. g i7 w
/ Z! w; S+ ^' v: B8 \template <typename T>6 P: F/ w& \$ X: G4 m
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 G* A) M- m5 m6 k, n* C5 ]( S{0 _: X$ T2 \" a5 a: V" l. n
public:
7 S* _: ~+ b. g3 H1 m( \: b1 r- t QFuture<T> start()
" D* F) c. ^& i" n" e f8 [ {
9 h+ K. L, Q+ W# N) L9 N' m this->setRunnable(this);; g) J0 V9 Q3 c3 S
this->reportStarted();
! W S1 p( f( _4 {( j/ _ QFuture<T> future = this->future();
+ Q `+ }& V# Z- a: M- d4 U! M2 Y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
9 |. {6 Q: F9 u4 C return future;
0 n7 S C j& j1 T- F" Q; [! Y }. w; r& q' J7 b3 p" N9 }; \
W. R2 |, S( y
void run() {}
" G( I( t) r; `- H virtual void runFunctor() = 0;1 d" E# z6 P; u, G* ?( p6 O
};" O; ^2 }5 C3 \: E$ N
+ y& R( A, U3 K( s4 V
template <typename T>: A+ \" p3 I. r* t
class RunFunctionTask : public RunFunctionTaskBase<T>
, e7 e* K; h! y' x. k{. i; s, q5 H; d0 \/ B9 T
public:/ d2 r/ r' O K( k# ?
void run()$ _: {7 h/ T* Y( U
{" {' ]+ W! |& q
if (this->isCanceled()) {, T9 X5 r4 d4 n$ g$ S! Q; g8 v/ F/ b
this->reportFinished();
b6 o( a. C8 {( O0 e/ E/ o return;% I3 C) `1 s: h6 k4 ~
}* E) z( @* T0 d5 d8 N
this->runFunctor();% K1 U. K$ s( c1 I& ?/ ? x' K' a
this->reportResult(result);# }- }! B: w5 K# z
this->reportFinished();
/ ]* G# e3 k5 D }
" u+ | v; E5 o2 {& ] T result;0 v# p# @0 F: P' \5 ~$ x
};
% Y2 L$ D; a; `( q4 K/ ^( C$ x* R& l3 D9 F
template <>
/ Y4 T$ M8 m3 f# \- a: x, xclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ v6 c# b6 X$ u2 w, E{
& L! L2 D1 [3 L% G' R/ Zpublic:$ I7 k) Z% V3 X8 o& h
void run()4 s9 A6 z( o& a* D2 W
{; @, _; V+ ^- E3 d. e
if (this->isCanceled()) {
- f# ?' g x q/ U2 R8 l: x this->reportFinished();7 O* |1 y) e1 [4 S, T
return;
4 e0 k6 d6 q& A/ \5 V/ x; | k }
# \, y* e9 p' a6 f this->runFunctor();8 D0 X' n' H4 n
this->reportFinished();( f3 S A% p1 v
}
( l! p& q G+ F, [ a5 N7 n3 Y/ R};
& S! P2 N `$ m9 f$ b. N, G% A6 Y0 f4 R7 B9 q# ?, \$ S- Y
} //namespace QtConcurrent
) S# I6 p0 q# v( W, J5 F' B9 c% J& m% t: i( [+ R3 U, r
#endif //qdoc% L9 o2 T& F& u, \! E+ }- a
! S9 e3 B# T% [& P4 i' J X
QT_END_NAMESPACE
& o. j, w( Q' q: g dQT_END_HEADER
6 d/ k4 V! }+ e
% M! x- b7 {4 {( u#endif // QT_NO_CONCURRENT
3 a$ [. }, [% d1 p5 ~! c
3 x( j: u3 s7 n: J#endif
0 d0 L$ S `: I) K E4 ^: `# y: D' b+ c5 k" B# h$ G# ?' g
|
|