|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" J5 Z1 E+ a! S! _ g9 ~( Y
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'( U0 b8 }% h* ]5 X/ ^
1 @7 v6 f. `9 V5 h4 i/ _这个头文件内容如下:
, G3 X- p6 ~) @& P. a& P#ifndef QTCONCURRENT_RUNBASE_H
2 A) z2 A" N: D \9 J7 j1 T#define QTCONCURRENT_RUNBASE_H" E2 y4 c9 j& L0 r2 O& [( F8 x
0 ]6 T* F$ j* D: L2 t6 X% z
#include <QtCore/qglobal.h>
7 `% ~3 @7 q0 X6 A j% s- Q: d+ p/ k" p/ X! A
#ifndef QT_NO_CONCURRENT
( o m& I# x7 r- s+ s1 M
U h; m% J$ M& j#include <QtCore/qfuture.h>; U5 T, ]4 i+ { Z% s" P
#include <QtCore/qrunnable.h>) s* K7 G( ]* @3 k8 |
#include <QtCore/qthreadpool.h>. g; m; B/ S6 M* y
- `$ P7 Z' u! S% r( {& `QT_BEGIN_HEADER; |- x* v1 {' Q( }
QT_BEGIN_NAMESPACE2 o3 m( X& e2 r9 }
6 Q8 G) S0 B- o/ mQT_MODULE(Core)$ X1 ^5 \ u$ T7 z) v; E4 y/ M% m
1 l9 P( W" [: ^* m z$ \
#ifndef qdoc
) i) ]* I$ ]" s1 Z$ `! e) D" I$ R/ w* n9 v
namespace QtConcurrent {
0 Q! M* W% i+ A
% ], }9 _ P# ?! x$ W3 [+ }template <typename T> v$ U% _5 L& c: P% O& V
struct SelectSpecialization
: Q( N8 ]$ ] L- h{* e. E$ P4 ?9 H9 Z8 {' p2 |
template <class Normal, class Void>
- t4 V( I8 C, L9 X: D1 G struct Type { typedef Normal type; };
. f! b9 @+ E) [, A};1 _$ K) M7 N+ y9 F
8 P7 |' y3 Q" f) _/ F2 ^template <>
% E! V& j/ }/ n! Dstruct SelectSpecialization<void>* q4 j2 Q \7 e1 a( P
{
% o# b6 Y5 E+ T3 N6 j template <class Normal, class Void> w9 p+ t6 T- M; k& Q4 A- y* w$ L
struct Type { typedef Void type; };" ]7 h0 r) J% w
};
2 c) D$ K+ E" a P2 {
9 M, O8 M0 e6 a( m/ p3 ]2 Dtemplate <typename T>
' V/ p/ C: N s" \5 Gclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, z$ p9 A* c/ p{
3 g, ]7 u( ^) p1 Upublic:
) Y) j7 V7 m8 M5 n QFuture<T> start()
' O( Z' Q5 l$ L' L' i* R& F4 B {
6 Y: v0 `; o( j' I+ y U this->setRunnable(this);
$ q; {) q5 [; } |1 \- a; u N this->reportStarted();. M+ [6 P/ @/ f% g( E$ ^/ J. I' ], X' \+ C
QFuture<T> future = this->future();
" G0 `% T% F' s9 c QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
7 m1 N! C7 l' N n3 Y return future;
( N' @" ?9 V% A }1 L9 t+ J h. T/ b' m e/ P$ C. N
$ Z' L, a8 y1 K: Q void run() {}
/ j; t T$ y1 n% q* [ virtual void runFunctor() = 0;* s6 n+ Z4 a) J6 F/ X; _! R
};
. M6 z! N' q. z* z
. X7 R4 P+ e: W8 |+ r/ Atemplate <typename T>
2 H- ^4 q) n7 V/ Jclass RunFunctionTask : public RunFunctionTaskBase<T>/ H7 z5 x& x0 Y" y
{
$ _/ A& @4 c r! zpublic:: R9 W7 C, c- a1 ` |
void run()
9 i& Q( B( @# x' u/ @- B _ {
% R b" G8 { ?, N& ?$ e, }$ _ if (this->isCanceled()) {* n/ M* I" Z: p3 T# G3 U
this->reportFinished();
% Z; [& Z: F7 L' |2 t- Q return;5 c( M' J! ^# M' r, |5 j" d$ c
}% c# l1 R* y8 p C3 {) w2 Q0 `7 A
this->runFunctor();4 D4 s) ~, n' T0 h! Z+ a0 \# {
this->reportResult(result);
3 X2 G' i( t( r: G D this->reportFinished();/ D/ v Q) n2 j0 v
}
3 u- f; j' `, i( S T result;; Q" t0 f- P- M( f
};+ B) U5 F: ~8 X3 U
9 N* E6 {( t( b; e0 \template <>' e& V$ W( z; n9 j4 S
class RunFunctionTask<void> : public RunFunctionTaskBase<void> ^! Z' _$ X2 L
{
4 W- [9 g8 M2 J! L# `public:# P9 M9 _4 w, a2 Q5 r o2 H- Y
void run()4 M; ]0 U. Y3 w o! n2 d. K5 E
{. @6 u5 p# b. f0 z4 o3 T5 |4 }% _
if (this->isCanceled()) {
5 Q( q/ K' k8 s: P this->reportFinished();
+ L' ~$ F9 u' e% \ return;
3 Z `9 `( E% |- r }
1 f' P( C0 w! B this->runFunctor();
. [, J( b% k. _4 v5 }2 V this->reportFinished();
& `1 _# P3 l8 F: F; k0 g3 v9 u }/ v( O: g* L* j$ u' N, G/ T& ~' W5 K3 Y
};8 }7 x- L2 \, a D
+ p) X- n: j2 \8 z# V$ Y" b1 f
} //namespace QtConcurrent. r: a& R& P. G! h; k3 W
: K0 e0 r3 G+ M4 s#endif //qdoc- L6 `+ y- G; b' l: O5 d- @# L$ v [
% a6 e, Y; i; O8 b& S: K
QT_END_NAMESPACE. a$ G6 h! g. s# K# t
QT_END_HEADER
/ p1 E( }) r: C
% }: G4 E( y' h$ Y#endif // QT_NO_CONCURRENT4 e+ ~; [( V; [9 k) c K, z
7 S5 F/ d- I5 U& `3 Q$ f' J- T
#endif% M* {# E I: O" e8 P! x" F
$ b1 a9 O3 ~' L' C3 E5 @+ A7 U
|
|