|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 l: E: E# |0 r6 j& G7 C
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
( g' N) p, o( n: u% g: M
8 K4 Y5 r" C6 [8 S* D2 V+ d这个头文件内容如下:* J# Q L' C6 \+ w* N8 ]2 d
#ifndef QTCONCURRENT_RUNBASE_H
5 V- t! E, e! R- y; j3 H8 b1 e: A8 x#define QTCONCURRENT_RUNBASE_H% R$ \1 f" P3 Y. [: }3 c
) r. ~$ _) q/ x4 P5 _+ T7 F
#include <QtCore/qglobal.h>
& m. @" f9 C& `2 H& b5 @
4 |1 k! ^! y% ?1 p8 F9 E. M; R3 h#ifndef QT_NO_CONCURRENT- o1 e/ ~7 q- @" q6 m* q
9 C: h8 _' p! j$ @- b1 }' l- i#include <QtCore/qfuture.h> f- T2 p+ G) o' \- w
#include <QtCore/qrunnable.h>
7 y% _8 S: M7 X( \2 m#include <QtCore/qthreadpool.h>$ _# K" B$ ]: C
, z- W, p* p& Z. N: ]QT_BEGIN_HEADER
& d2 z& s% U( _( v$ o0 Y' L6 r" uQT_BEGIN_NAMESPACE) N* X) w8 f# w' a' p7 u6 U
" ?9 ~- @0 m! @& c( K& ]. A
QT_MODULE(Core)
! B4 T: `" Y1 A6 \! f& _" j+ @1 V; E' L8 m2 |# \# [
#ifndef qdoc
( E- A8 A, G1 E; g) I3 X3 r$ C: s# @4 S8 W" Y. O# g
namespace QtConcurrent {
3 G2 v. s E$ G* ]' N! W" s& A. N2 B; p5 z7 W
template <typename T>( x# Y! ^) O A& I6 z" @0 s; T
struct SelectSpecialization
; x, l# U) k/ M6 g/ e6 K{) v( U1 K: m5 u/ g0 L) a
template <class Normal, class Void>4 l; a! s* b' V
struct Type { typedef Normal type; };
, p: }$ w4 M# O, C$ ?# J0 k};! m6 k: \) q* z4 O* h: O5 k) }
5 t% Z* Y4 |# Otemplate <>
& S- d1 d0 Y9 B" N5 zstruct SelectSpecialization<void>
& i# h3 ?) n# |7 R' g$ H{" P" b7 x/ z3 ?6 K: J4 Q0 V
template <class Normal, class Void>+ N+ F9 \ S+ t" U) I; X' K
struct Type { typedef Void type; };
}0 J. a# W4 V) Y};
) u2 R: q, j1 H6 i& Q
" k- A1 }. P6 `6 Q! c$ O C, q) @template <typename T>4 X" E# ?' K: Z2 |* l3 h/ \
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
$ f, O( y' ^/ ~) G! ~% S' K" d{' \8 m( C1 ]# Y
public:0 f8 t |6 F# s; H4 t
QFuture<T> start()* ^7 [2 R6 d4 }1 o
{. s! T, c1 b5 l/ @- h% K% m
this->setRunnable(this);
2 A, g0 [9 E( l& |/ l this->reportStarted();
% W( I" e) V+ _, A# c* l( \) v4 E QFuture<T> future = this->future();9 N* ^$ `; C! N& i: f3 O
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);: n8 ]+ z4 {' s2 E
return future;
* Y5 Y) C4 ^0 V' P9 `& P }
% I6 S/ {7 B( `: l! Z' b1 j; A; E; p9 u4 H2 x: c# l
void run() {}
5 z. g0 U4 a# R2 t# L9 j virtual void runFunctor() = 0;$ @* U) [6 y E3 D, _7 R8 |
};7 Q8 z; B! M4 ]5 F2 m1 L
) e- [6 C9 \. M) b% H7 w- e* \4 Qtemplate <typename T>/ `1 |+ Q; c. [8 R: B2 ^$ [2 e
class RunFunctionTask : public RunFunctionTaskBase<T>
/ n$ Y3 K2 ~. P+ ]{
+ A+ K7 |% f* Jpublic:
7 ]# T- k$ [+ a4 F* J w2 a; _% { void run()
+ t F1 I( R% V( ?% U& \ {# N; |- H1 {- Z1 E; x
if (this->isCanceled()) {
/ a$ a" b6 t; U4 y% N5 B this->reportFinished();# Y8 w1 X: a+ Y. M/ I
return;+ J' d& |. Q8 g6 @
}
1 @6 X4 }2 W- B7 p% C/ V, F3 ~' B this->runFunctor();
( ^/ K4 n$ s4 ]; p) } this->reportResult(result);
/ k) a* A1 b2 n) C4 K, W this->reportFinished();! G' f9 T; E3 U- ^+ a& A1 }
}
5 j: z- P ^! g9 r9 k T result;
* t, P9 J2 E/ Q3 n};7 t: f" |8 n; \( Y! A3 L
( D+ D. c7 w) ]template <>& p" `, E: A( ?
class RunFunctionTask<void> : public RunFunctionTaskBase<void> c) Y! @$ ^( B) H# A2 M
{
+ _; n* a5 f7 N$ [3 R9 H- Gpublic:
' F2 ~3 M @3 H) N void run()* E1 \* u( E! C8 ?
{
- _+ g$ u) K) ~/ Z6 h- p* ]3 l0 ]' N if (this->isCanceled()) {& h( J7 E: h# X
this->reportFinished();
1 A2 W8 I( Q$ I- _! H. V9 x6 e return;
9 P% Q% C! h+ E$ h# T5 v# O }
4 k6 w: e7 D: V; D* { this->runFunctor();' i& [* w5 V6 s0 y+ }
this->reportFinished();" u3 ?4 H2 B v, Y% ^
}
3 _ j* i9 E& Y8 o8 ?* D};
$ l b7 h, ]( Q) ]7 d$ F4 |. U, z5 a- _# t
} //namespace QtConcurrent
/ `6 p2 P" i9 z: T* M3 F0 u0 A8 K& ]1 n; L+ n
#endif //qdoc4 f8 P" m! ^9 a) z* R0 m
& `! \- W7 V4 D0 H$ z& NQT_END_NAMESPACE
* `. L" T }8 v7 y4 Q" [6 G% ~QT_END_HEADER* `8 {% I/ k2 K7 G2 ~
: @( h0 }6 u+ @5 |8 Z6 G% e. o( L#endif // QT_NO_CONCURRENT
8 a) L, _* V( k0 c3 x0 E
+ h$ I8 L, b8 _* m#endif
5 B" |( ]# p. _
$ x Q5 N1 Z+ |) P |
|