|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
% C' m- t' a' h. V/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 \5 O+ e+ l( {7 v* }
0 ]/ d% n1 o2 d9 q; r2 \ h1 [
这个头文件内容如下:
% p* i& ]$ D5 Y( I#ifndef QTCONCURRENT_RUNBASE_H+ t1 J/ e: k0 |: U6 ?
#define QTCONCURRENT_RUNBASE_H2 W! e' Y4 y1 e1 G% F2 Y4 t
( F8 }2 _: ^8 W: S: J9 \#include <QtCore/qglobal.h>
9 T7 x, K" |6 F" `% x: w Z0 j0 B) G/ |- \
#ifndef QT_NO_CONCURRENT
- a+ K2 a8 M0 C& r9 [$ L i; o- L/ ]1 A& W, i
#include <QtCore/qfuture.h>" _( ?% G0 U5 X# G* a
#include <QtCore/qrunnable.h>
( I" W$ m1 p7 ~2 r( B c#include <QtCore/qthreadpool.h>
. z: |# m0 `8 v3 f* \9 c2 x
) B3 g( [; v3 s5 `$ |+ W9 @6 u2 CQT_BEGIN_HEADER
5 u. K) L, \" zQT_BEGIN_NAMESPACE
! p( v7 E+ O. P7 f5 U" N- W1 `) b6 f* \1 g L4 i6 V( m
QT_MODULE(Core)
+ D! e$ |, S5 T8 z3 d" T0 k" G! B/ a) B/ y/ W) @2 S
#ifndef qdoc7 h9 T/ b8 ~9 m
2 V3 N5 W3 K Z( @
namespace QtConcurrent {
" K7 _, ]7 I+ p. L8 ]3 v
; j1 Q! V; K1 r- K5 F! Ttemplate <typename T>. [8 D. c: T' Q8 P2 q' V% _- i1 j
struct SelectSpecialization+ P+ d' p# t' }# w* h
{! v. w- D0 M( ~- ^2 C
template <class Normal, class Void>+ U; ?- N- k" u6 E9 t0 \
struct Type { typedef Normal type; };$ f+ P- @- X* {) K
}; a' F3 B' h; o
$ C# t* p( y! V$ `5 i! D
template <>
) p0 u$ z* s: W% L4 @struct SelectSpecialization<void>
( ^: k+ E( E; l, S{
, M7 O2 Y2 _' Z template <class Normal, class Void>
4 D& B) j# K1 J0 S struct Type { typedef Void type; };
* j, D1 H$ n. \2 p8 q};& O% u; Z L+ @3 L
4 \. I* D) _2 V# B5 n
template <typename T>
3 W: i, y0 u& o; E5 iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" f6 X, ^/ C& `- h
{
+ R7 e+ h, I* J; Z! P& Dpublic:* ~6 o, g; c" [
QFuture<T> start()
, ]0 `% b% M3 I: q/ x* j0 Z {
+ ~3 \( R* ~! f. V0 n5 v2 j1 Q6 ?* y N this->setRunnable(this);
9 ~' T& _- U9 i* ]; A this->reportStarted();
# \! P" z3 ?1 p( d+ S1 Q) B QFuture<T> future = this->future();/ e; t0 v0 H. P' A, k1 c$ D
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
4 b" h4 p; f+ f. f3 @* V9 V return future;. n" n: n. B/ ?) u- l+ \
}0 a3 e0 Z; w& q! G
5 C9 Y& A& r P$ ]7 f void run() {}
: I) b) D) j$ i# Y+ P) k virtual void runFunctor() = 0; z4 n6 c* C: {) ~. T
};! J1 E+ A9 q" ]! |. x& Y; c* ]
$ S' g0 q5 S- a6 |$ s: m
template <typename T>
6 @: d- {3 i; e; x) P% U9 y+ y) bclass RunFunctionTask : public RunFunctionTaskBase<T>
: @6 o# K6 l( H5 _' \ f: R5 b{. `, @' y5 S! _0 m3 _" \7 N3 i
public:* o1 q3 w/ Y! ^- z5 c
void run()
7 D. {% Q! Z' z* f# A) G {8 c+ l: I* T& F6 _+ O
if (this->isCanceled()) {
' y5 z7 ~; `* W& W n" ` this->reportFinished();2 s4 i- c; I# A
return;
# D: z F+ R3 a% t% }& \ }4 _( j/ Y; M4 F8 Y$ Q8 c. I
this->runFunctor();
' g* G/ w7 k9 h+ Q+ @7 z this->reportResult(result);
) G1 [ `9 v( o9 s5 B this->reportFinished();
/ t8 z1 r: W. i4 B" F. ]6 p5 j }' u$ m8 I9 U5 @ j t( ~: K
T result;
: ~+ L5 C6 q: ?( Q( T! s};
# y! h! U5 G# `; T" e! U$ S6 ^) g$ U; D) k/ [* j, s- S# P$ s
template <>7 O2 z, s8 Q$ ]" ^% }
class RunFunctionTask<void> : public RunFunctionTaskBase<void>% U3 o" c$ D7 S' u) k
{- ~# E' j7 F" z
public:9 ]5 b' s4 E+ `. s- E5 F6 `0 Y
void run()4 C$ J0 I5 R+ J+ p
{8 I# q, w3 K3 z% ]8 `/ s
if (this->isCanceled()) {' h+ b0 W# i7 d+ L" k) l
this->reportFinished();" U) F1 u# v6 A8 t
return;. {2 }) F& W3 V# e$ c9 ]
}
' I5 I1 {. ]! ?2 E {; w6 ` this->runFunctor();
5 j' D# a' {% C1 ]7 R this->reportFinished();9 `; M5 Q, y! Y( B/ F
}3 L+ F2 u: j# ?0 V3 A9 E, j
};
4 x& S# @+ _% N( B" x
4 w7 \5 R, z6 |, O4 C/ j} //namespace QtConcurrent
0 B# P$ @6 N6 a K7 T5 Y$ x$ D% Z2 N9 U1 C
#endif //qdoc
p0 E5 L) T h k2 |8 [
5 D$ W e, n v% iQT_END_NAMESPACE" Q4 q" a! Z/ m y/ [3 |- J/ B1 i/ S
QT_END_HEADER
) n6 S5 h F+ {. t$ c/ n+ w% P, T8 V: K' {
#endif // QT_NO_CONCURRENT
# Q9 z7 D k: W$ w8 W# I1 w6 ~; T& E: Z0 O- L. g/ V
#endif) x; \1 x& Q1 _- r1 o. a& |0 E' M
& u }" _; x' z6 h9 p, {
|
|