|
|
我对syslink进行交叉编译到arm,但是出现如下错误:6 r* ^, {0 k5 ^2 N
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, ]) x% I0 \5 j0 x: D6 b/ f2 N5 z& |+ h; p0 `
这个头文件内容如下:) s& e8 |1 {0 q
#ifndef QTCONCURRENT_RUNBASE_H
# b& h7 m' u+ e- t5 b# i! h* K1 T#define QTCONCURRENT_RUNBASE_H
0 L x4 W' u9 N% m% S1 A
/ a, }) t3 @6 J6 o) Z#include <QtCore/qglobal.h>
t) s7 q' R$ b- ?9 a9 k4 M0 o, c4 l/ F$ b
#ifndef QT_NO_CONCURRENT
7 S% v; Y& t" Y5 }0 `
8 d5 J9 e) A' ?5 F% Z5 {7 E( T0 w2 s#include <QtCore/qfuture.h>* l+ q7 v) }. I5 z. [8 K8 L
#include <QtCore/qrunnable.h>
5 p% S- i3 {6 e0 t6 P1 |#include <QtCore/qthreadpool.h>
% ], h: K4 f" v( F/ c' m
; s3 G$ v8 ]" A: ]QT_BEGIN_HEADER& u* M0 \$ h# e2 x
QT_BEGIN_NAMESPACE/ h$ L; n* d$ u4 H! h& b- R
) D) K( k ?& N! L+ mQT_MODULE(Core)
+ c* f) w a2 S6 P5 Z. J- k. x; Y( \1 \: r6 r* x4 T
#ifndef qdoc
. D+ G! q1 x4 r9 |+ r
7 e }" H8 ^ N+ G& H) z3 qnamespace QtConcurrent {: o$ s8 o$ D( s; d: p9 k
: E/ p# v9 H# D+ O* atemplate <typename T>* t% Y1 q3 r) f- Z5 r
struct SelectSpecialization; C& B5 E! D( {7 A* ~/ B7 x& `+ W6 |
{" C$ w, a* @( [+ ?( ^) v: ]
template <class Normal, class Void>
R& c" {. a- U- E struct Type { typedef Normal type; };& n3 O2 R( S2 r- @5 g/ T+ ]
};
/ F. j" V! N( C7 U
A: j/ h! h) i K# C* qtemplate <>( R, n8 ?' d- Z% X4 L
struct SelectSpecialization<void>) s1 i* E1 u' O$ t+ F
{. t7 y- D/ s- i! }4 S, ^
template <class Normal, class Void>
; i' U8 N( F/ ]! I( d struct Type { typedef Void type; };
& X" `- G7 t7 I7 B. L6 h7 p};# P6 `# h* R4 B# v
o+ E% ]" H& q7 B) Z( \template <typename T>8 v+ e9 u o$ N
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable1 L( u& i# O" ]* F% z6 a
{
+ i3 T& a" e# c* ipublic:
' k; h! k* `6 I8 B, E0 ]8 m1 E QFuture<T> start()
* ^2 _" Y4 N9 X F- l, R, q& q {5 [ F# [: O, |# a6 `; ^
this->setRunnable(this);* K" k8 x9 }+ q+ k$ O
this->reportStarted();, l# ^( q( x8 f9 d1 E+ F* P
QFuture<T> future = this->future();
/ c! T( l/ i6 S1 X QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);0 l2 z# E! d+ \. n% n7 U
return future;
# p2 ]! o8 B. _8 C/ s3 t9 J. i } I N, O; M# j, d T& [0 N; H
$ v+ Y& p! S* [. ?) r2 N6 V* g void run() {}
: M+ Z$ A4 B8 \2 p; d3 C* Y; J( c7 ]" C virtual void runFunctor() = 0;
3 e. [: V7 Q) X' P};7 g$ C8 k) n- V% G/ l
0 y# r# F0 p% X) ?template <typename T>$ \5 h K7 ~$ k o
class RunFunctionTask : public RunFunctionTaskBase<T># y- d, G! T/ S" G1 @' w% S
{6 I) V- q& I" S/ y8 W
public:! F; }7 B6 H# a1 M' {5 @* ^2 o9 L& g
void run()4 c& Q; p; U( V3 f+ J$ ` S
{( K5 \5 @! i" h! [0 F
if (this->isCanceled()) {' d1 @% n3 w% H* _/ O4 r
this->reportFinished();# `6 D% Q- q' r9 r& D
return;
9 B. O; `& @+ o. c3 H+ g } r7 P. R1 @* @3 f* K2 o3 x
this->runFunctor();
6 \5 i/ L. m- ]1 I$ O W2 u6 | this->reportResult(result);
, M0 a0 k- R( G M7 _ this->reportFinished();7 F5 X& Q2 f7 _0 E( u
}& d6 k0 m( U. j$ [0 U/ P. C
T result;% {/ v' C7 r7 m$ G5 |% [9 d5 N
};- W# R7 B. M1 O; f4 L/ C7 p! E% d/ {: O
9 `% L1 p- ?. k7 R( C
template <>
$ @( e! z6 W8 U: q# ]2 yclass RunFunctionTask<void> : public RunFunctionTaskBase<void>' F9 H& c/ i6 V) }- ~
{
, h+ |8 g: g; i: v/ qpublic:9 F. Q& L+ S0 y" f
void run()4 s: G' y" M* z
{5 F7 N% N! W1 ?2 g8 R3 X, }* n
if (this->isCanceled()) {& ~4 T! x% S; C3 |) [* W$ j5 V
this->reportFinished(); T# Z& @9 S: [# U A: q
return;* |! p3 q' H1 N0 w$ P: i5 f
} V7 i4 ]% v: P( h/ P* a/ Q
this->runFunctor();! J5 R( a7 Y( F8 R* x4 v! G
this->reportFinished();3 y' ^1 j( }" J2 N
}
' K) H" E5 f5 V; H8 v; f};( G" r% a' ?6 R4 _6 ]
" G$ `5 w, [# O- ^& J l$ J( l, V
} //namespace QtConcurrent1 k- n# N8 ?7 z" r
: }! O$ r3 u6 W& V+ Y: R' O% _
#endif //qdoc3 ]7 c: L; ?6 N2 a3 a" V( ?
# H' X! F$ P9 L! s1 l
QT_END_NAMESPACE
2 p% W7 f; O5 |6 AQT_END_HEADER
& ^" Z4 t u! [! A1 W) W t2 p% E7 M+ y+ a3 {8 r
#endif // QT_NO_CONCURRENT
8 F2 V0 Q& J' Z3 X, \2 v g: G
- d3 g1 D; Q5 b) D& Z9 i#endif
U, a8 c$ P1 Y/ N; H! w2 O `4 e3 ]) G9 @$ J5 ~% u0 \( e) M- h
|
|