|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 t3 i) p4 e7 r1 \4 \
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
$ e; |5 S) Z) G) _) c; L2 A( [, J5 {5 Z" s6 I1 r
这个头文件内容如下:
- W0 x* c/ r y% N! V& ~. R2 s6 M$ R9 \#ifndef QTCONCURRENT_RUNBASE_H
$ s0 ?5 I# y2 h+ ^( v#define QTCONCURRENT_RUNBASE_H' x& y) h( @+ T: ?/ m
5 S6 i( q+ j$ d) b b
#include <QtCore/qglobal.h>7 q8 T6 A$ T6 v8 o! j6 R
. x/ R2 Q% u2 N; a6 A6 Q i2 O#ifndef QT_NO_CONCURRENT- H B, G* d" Z; f- _
- N! |% m( x: T* Q! [
#include <QtCore/qfuture.h> F. X. G1 k5 O% y
#include <QtCore/qrunnable.h>% _8 v" ]6 t0 q
#include <QtCore/qthreadpool.h>, c) t B1 Q; S! O& {
0 V7 |* n" ]/ X. K' EQT_BEGIN_HEADER
# |, o u$ V( g P* H0 ^QT_BEGIN_NAMESPACE
: A4 m2 B0 R2 t( W/ y; T7 _
% s1 B/ Z1 L9 n, Z l7 e; Q. @9 BQT_MODULE(Core)! o- P. m! f! P o- j
' \9 |& f) d* ]+ F#ifndef qdoc3 ?0 p4 z) g9 ~0 _
/ m* e; s2 L" N5 H. n
namespace QtConcurrent {
; l0 r7 ]6 X7 U! j, N2 K
8 c y# l( z5 y, {$ D% Dtemplate <typename T>
+ ]* _. a- A7 K; Q4 Gstruct SelectSpecialization+ B+ O! E7 n! e8 P0 l
{
8 \. w% Z) v2 {# E F7 p4 H& k template <class Normal, class Void>
4 L2 F; F0 J- _8 ?4 o struct Type { typedef Normal type; };- q7 A) L3 [5 ^
};
# I; x& _" _4 \4 b Z& E. U
6 j2 |9 V1 b1 o9 _$ x% [$ `2 ptemplate <>
4 g; ?- K# V' j4 G T% [struct SelectSpecialization<void>
" M6 c4 o: |) I% q* }7 u$ B' G0 d{
$ H" q( M+ m$ b template <class Normal, class Void>' q/ p2 r. v& H
struct Type { typedef Void type; };- {9 w! M% U; m6 l7 s
};
8 K+ a4 I0 W' \1 h- a
# c9 V& a6 C, }2 ^/ J2 Ptemplate <typename T>4 Z; Q, m; w r- B9 ]9 F
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. H# L# J1 R, _4 s; X/ A7 F1 H3 j0 }
{, k" W- U, J* z% u! U$ ]
public:: V2 G4 m9 Y$ ^: ^8 H/ E$ S! U% y
QFuture<T> start()
8 f, i: M( Z5 {/ g) F- ?4 M6 N {
( v% o6 [5 ?9 \' v8 D this->setRunnable(this);0 |8 Y; M3 z7 x1 J, A) c0 |
this->reportStarted();
3 n/ _4 W/ J2 i- s2 V8 w- K1 A% t6 l% A QFuture<T> future = this->future();+ Q7 {2 v$ P% m B; y" o
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);7 X' g9 O" ]# u& }$ w' u& k* U1 ]4 E# Z
return future;
& }: l' y# g, }; D* Y/ i* J }
! x7 K1 r3 r6 K8 U( i/ p( B+ I0 K( Z. M! W: N/ x, \% [, I
void run() {}- e- Y# |# N' v. k# e: M5 X
virtual void runFunctor() = 0;
# g# ^2 }/ S1 [};5 t% t, I( y! X3 }
! _* Y" G6 b. U! f+ |2 ?template <typename T>
% Q4 _# y }3 e4 P2 P$ h4 t8 Q6 H% i4 Kclass RunFunctionTask : public RunFunctionTaskBase<T>, m+ r' o/ g5 ~, `) n, n- G5 t/ h
{
# b. \8 z: p, Y0 G, H& Fpublic:: l8 Q4 {8 Q/ a+ y# p5 ?( Z
void run()1 X k) k$ i4 o8 ]! P5 _
{9 y( y' t- q c) K& T8 L/ m9 R5 Y
if (this->isCanceled()) {% A& ?0 u; e: a( l
this->reportFinished();
& C7 n. n1 U2 g. o2 r8 {8 k return;
0 D* T" D' G; C/ D8 {) l: n }! b( H |! [% O
this->runFunctor();
* I3 p+ E4 ]( A this->reportResult(result);
# Y% S9 }3 S7 {2 }* D* b9 h this->reportFinished();
) x, \: }( p. u& ^ }
7 B/ }" E/ V5 P8 M T result;
# n5 e' b; n/ _. G8 ?% f; h};8 \! X! h% W: N' |# ], q" M2 x
" q7 L9 l8 W. W6 o; q4 _template <>: e+ u4 ^7 c9 _% U2 Q( O: b
class RunFunctionTask<void> : public RunFunctionTaskBase<void>: Q1 u" \# R& |+ W M2 K
{) t+ j3 g/ ]0 u
public:
+ M$ N# ~+ ?+ z/ _- N void run()
Y5 x) ^. S9 U* S& t {. ? h; a8 m( X" z, J
if (this->isCanceled()) {" q, l1 }0 \* Z' t G
this->reportFinished();
, Q3 G, G6 M9 j/ e$ A3 [2 h return;
9 C P: j4 j4 p6 E! h }* h& O4 s) T' |) W/ q8 U9 x- L
this->runFunctor();
" R e' A% B0 z% m- @ this->reportFinished();6 [& ], g& j* a1 e$ z3 X4 E& w
}
" e- F# U1 l, [- x% k0 y$ I};
+ S/ q$ @8 r0 a. Q: J& w j/ c; S4 Y' [% Y" l e) b) J- M
} //namespace QtConcurrent/ P/ s5 c4 ]! o6 u% ~$ S" m
5 G: D: d! q: `3 _7 P
#endif //qdoc
. h7 b; Z7 R. L
) i( h0 E5 L9 iQT_END_NAMESPACE
4 D* ]% K5 t1 o7 h" l, RQT_END_HEADER
# c0 U8 z3 p0 e$ I) K) z" `) v Z; [0 X- s0 |# Y& v, I) M4 |5 `
#endif // QT_NO_CONCURRENT) i. B3 A6 G8 @6 P: S8 {) Y( h
; A. Y: ^3 e3 q, ]& H& m) w#endif4 ~5 n2 f2 G$ ~: f# m
. W6 v5 o9 o' S* `
|
|