|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
& s! t% Z. s$ L) `4 Q/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
2 G# r C. t1 n! C+ g1 F( _: y0 B _4 y9 p& \
这个头文件内容如下:
6 k% B4 F* F/ X: {5 n#ifndef QTCONCURRENT_RUNBASE_H* L' L, ?" s# t+ N8 x. V
#define QTCONCURRENT_RUNBASE_H
$ q" k0 N( t; v) h
8 V, Z6 G- ~5 I1 p4 j# m+ z4 k( n#include <QtCore/qglobal.h>1 ^, [: \4 q! {
6 b6 R2 i+ w1 M1 |' m- S% \#ifndef QT_NO_CONCURRENT) {( z% y& J4 d7 H3 T" f
2 k$ T# W" A3 ]
#include <QtCore/qfuture.h>. j6 K& ~8 r& G' U, S$ y
#include <QtCore/qrunnable.h>, v- f/ V I* K1 w
#include <QtCore/qthreadpool.h>
; Y" l8 u+ k; ~* O
# f' K8 ]/ c! V1 R( Y' ?QT_BEGIN_HEADER
. e; g' g9 U1 n) l; J# k: _4 NQT_BEGIN_NAMESPACE- C8 V5 {" s9 T/ S2 C. _
. o% ]6 B" p9 y
QT_MODULE(Core)0 e. ?" r' X1 T. V# S
8 o: M9 d& q. K; C/ R
#ifndef qdoc7 d5 c1 z6 Z% ^7 `' O' ^
- V# o* V- ?! I) M9 S6 N
namespace QtConcurrent {+ r1 A n' b. z" }
9 ~/ s6 ]& S1 S
template <typename T>
! R* P7 I! }/ I' tstruct SelectSpecialization+ q+ x* z' f, e: C* \
{# V3 c' N+ X: |7 E) @6 c- U8 \) l5 t
template <class Normal, class Void>
t4 i4 Y4 m9 L7 Y struct Type { typedef Normal type; };* e* o0 v8 D2 h
};8 |0 I4 a6 s$ u8 r
: q C) K& X7 O3 P" ?template <>6 S/ m/ w1 p! b" N; O
struct SelectSpecialization<void>& H; l9 ~1 }$ ]8 L0 h; G
{0 Y8 z1 N) ~3 x* x8 y0 \
template <class Normal, class Void>
& \1 c: [/ t) t# `) x' L- a( O struct Type { typedef Void type; };4 O" ?$ m2 i5 |6 R s% ?$ Q! d
};" a! I" B1 l# L, w7 b" g8 M4 k2 Z
+ e' o) z& t: I# x) m1 N
template <typename T>4 L" X) D0 o5 |! M
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable! \; J- }4 E3 }" Z% h3 k' Y% t
{
& D& c; q8 i9 y7 b& n4 m: @public:
$ D" B! K3 A% _+ B1 B QFuture<T> start()( N$ Z6 U$ f7 U' R" a
{% [/ u# I) ]* { C: a( M+ m
this->setRunnable(this);
% l9 N5 Y/ i* F9 p& |4 H this->reportStarted();
5 C% v* T/ X! C+ \* j8 z" _ QFuture<T> future = this->future();
) N2 _. \4 M" p* S; R3 | QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
# P9 b+ K1 B1 o5 r return future;
$ H4 b3 b) ~) l9 M+ q+ f: B }/ g) H) D9 [, Q, S. F% Z' d) B( S
9 ]8 [6 t, I' j* P* b8 x. e void run() {}
0 P: d5 W7 @& D' y" y virtual void runFunctor() = 0;
/ u# Y3 J6 {) s: Z5 Q};
7 N) ^& A# o* B4 O. m
. t: @" B2 a( s7 ctemplate <typename T>
* l: }1 ~) ^' {9 s* C8 n" N# {class RunFunctionTask : public RunFunctionTaskBase<T>: `+ e6 }0 Y7 X! Y4 V
{
" T; [/ U2 R& ?! F6 a' Tpublic:! E( M9 q4 Q& C& z) \
void run()4 Q$ L( f6 X! R
{2 y4 L- ]- f V3 X* [% e1 l
if (this->isCanceled()) {
: [4 o; _& w7 L2 x this->reportFinished();; o& C7 A8 N4 [1 J$ T# b& t* k1 E ^
return;
, W; g5 X3 S. C }, L" p& v" r2 g2 v" {# r5 v# o
this->runFunctor();" O- b/ g* [" G) @8 X
this->reportResult(result);" M8 h6 [0 \9 s4 D: T/ d9 d" t8 ?
this->reportFinished();# C$ h% {3 b/ F: a3 n
}, z+ ?8 c- h& ]" W* G
T result;+ X4 Q5 v$ r4 i+ Z( A
};
6 R1 _; @7 F9 J; t5 `
) a( @7 O# y0 {template <>$ q/ X4 ^/ t h" V/ s2 h
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 S9 K) h+ C- a2 C6 }8 Y: _{/ w& o4 e$ U) ?/ ?* j% i5 I
public:3 n$ r+ w& o5 U* z" Y6 A
void run()
6 d6 q" G. I2 r) ]6 M7 H {
, B L X+ G- E; ] if (this->isCanceled()) {: c& w6 P$ j, O, s
this->reportFinished();
( ^) w$ C- S' }( g) Y$ d return;2 z4 [" ?7 I0 x1 m' y
}) g- r+ n+ j! Z& t7 S, ?7 |$ v
this->runFunctor();
; T! @. P. Q% P# M7 c( I0 w this->reportFinished();: T& r5 t$ I; V2 U
}
7 f, C/ M- ]8 F5 N) _( z. A};
" ^# b2 m5 q0 g" L v
, ^- w9 n. n- e2 B+ @5 l6 A} //namespace QtConcurrent b5 R6 o" W- b E
$ d, f/ z& K- g' B6 i* Y
#endif //qdoc
2 {3 F; H9 m1 E0 |0 e
1 O# l' \- W- O' T, DQT_END_NAMESPACE
4 @& u9 D; G) YQT_END_HEADER5 g" ?$ i' B: {9 k# N2 B2 c! ^" _5 Z
1 E5 J! { [' H1 m" t {#endif // QT_NO_CONCURRENT! {% `9 H! ^9 w' H; [
) |4 {% g/ V* Q
#endif5 ]' A3 b: }7 \7 l: g( H9 j) k
& k! Z4 {& B1 g8 W0 C |
|