|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- p. I5 B8 W# a# {+ G6 s+ C- t
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 ~$ v$ e/ `2 i j4 S- t: e5 @
g. j( G8 C5 _5 A. O6 {这个头文件内容如下:: ~1 X% X8 j w- r* M4 H; E( o' }: f
#ifndef QTCONCURRENT_RUNBASE_H
$ B3 i$ ~/ m+ _#define QTCONCURRENT_RUNBASE_H
) c: q/ N* k: Z7 D" ?; N
3 q+ e0 Q7 S- z' }2 E- j#include <QtCore/qglobal.h>
& h" r/ b% _$ h! R
6 { i% _, E1 E' [& M: p#ifndef QT_NO_CONCURRENT @9 o9 @6 o! S. y' Q
9 ?5 v; A3 p. A6 `1 L2 A#include <QtCore/qfuture.h>$ x. |3 m1 C" ~& n" _+ t
#include <QtCore/qrunnable.h>3 r5 ^0 L9 Z q' w
#include <QtCore/qthreadpool.h>" y0 W/ H9 P# R2 s# L% Z6 G- e2 ` c+ N0 b
# }1 q. }) z( q
QT_BEGIN_HEADER
' z/ m& r( Q" @& R5 `, ]# u( ]QT_BEGIN_NAMESPACE
0 G& D( i1 p6 G2 z
1 _0 f* d* |) q6 ]2 `7 tQT_MODULE(Core)
2 e7 x5 ]4 A% v8 S3 G) V* i( \+ d
* }- J; ?. x) X4 {" j# m#ifndef qdoc* g5 s* ~5 E% P- e& p
! b( K7 V9 Y6 Rnamespace QtConcurrent {' L" `( Y8 s7 N/ A6 t* l6 G, a J
: |# W- c1 o' o* X8 b, ]) L$ {( ~4 Ytemplate <typename T>9 ?/ `) `/ @- @& b) ^8 U
struct SelectSpecialization
7 }/ r$ B9 L; K/ }8 X! E, l{3 d9 H! P' g. R& T1 J v+ H. O# n
template <class Normal, class Void>
" H, {0 G0 y! t8 J% s0 D1 [ struct Type { typedef Normal type; };
- e; K _8 O' M! s};
- W8 K+ c" g! |5 \) Q
7 `1 S1 g9 L1 p6 C- Qtemplate <>
8 D2 q" s0 M+ P! j0 }struct SelectSpecialization<void>
4 H7 {& k$ o/ n2 c6 g( k{/ [- y( V$ B( ^
template <class Normal, class Void>8 j3 c0 i* \9 y
struct Type { typedef Void type; };
; P3 z3 g5 J) o P};
. y6 g7 z: D8 h' O4 t
; ?7 n n6 J' n- Ftemplate <typename T>: I: g* S1 |# V- L8 n
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
" K+ r/ d/ _9 A" n) q, _{) a: M9 }' ]( y
public:
& N+ F' K _# |: b4 J4 ]' g QFuture<T> start()5 x9 v& g1 u' u" Q
{
2 _, q/ Q3 e; l4 p this->setRunnable(this);
9 \5 Y- {5 K4 ^, N1 J2 \% ]7 n4 l this->reportStarted();3 l- S2 n, L8 O! U
QFuture<T> future = this->future();$ E' `1 L2 d% x+ i
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);- H; A& L, S' F; N
return future;
2 \- h! C8 k: O5 Z2 k }
' B# p* q+ M l9 k3 z5 Y; A# q
# ^9 B8 ~7 `6 B7 t" }$ F void run() {}* |4 [7 K( i3 y" E) U7 w
virtual void runFunctor() = 0;
8 T7 q, ~, j7 o" l: E5 d};6 R V7 l, f" y' N
. K1 B6 i9 q( b9 I2 [* w! a% y
template <typename T>
4 H5 v1 K! L. z( B9 ?: w2 @class RunFunctionTask : public RunFunctionTaskBase<T>' @& `- W: M7 J* _. G: u4 E
{4 r# B% \$ {* o, S& I
public:
5 r* l0 f3 z* N2 I2 ` void run()
! M$ `' h( ?" p4 a {! D: D" S+ s& k( H) k/ K
if (this->isCanceled()) {
6 a5 P8 D7 }* s3 w Z this->reportFinished();
+ n# |8 K) q' x9 m6 X return;
# K8 g8 s0 P! a: {" F }# Q6 b: D- e% ~3 M
this->runFunctor();
, J& ?' u' Q! r2 f m8 m this->reportResult(result);; S" w4 T. h ]% t4 M- Z- A
this->reportFinished();( @3 E7 [1 b0 M: z; {
}
+ a, R! L3 E5 X( }1 K2 | T result;
, j1 |- M/ U# c, G9 H0 f8 T};: F. |1 m( M7 f1 I2 r% z B
, j, W$ ]5 e, d6 [" |/ N/ |
template <>: O! {6 b- k5 ?+ K/ m
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
2 }9 x/ x. ~3 w; |% K' [) g2 i! A{! L, l0 i$ j* t D7 R9 M2 v
public:: X0 G4 Q1 u, x* v2 o Q
void run(); i$ w) ~2 s6 ^6 G1 _) p/ [ _8 Y
{+ Q' o% N% E; E0 V% J+ }! {
if (this->isCanceled()) {9 d+ X- j) s2 h' u( t6 M
this->reportFinished();
" ]& L# ~! P1 z- O R/ Z i return;
& D1 [$ e) e J9 t }6 k# T. ]& d N' ~) `( G/ U
this->runFunctor();
$ I. B1 b5 J8 ]2 A this->reportFinished();; _& U/ K7 b* R( W
}
# o9 N& ^+ J; X$ k) \5 X* `* C};6 q7 _8 Z4 L* x* D7 @) n' d9 H
3 b, \1 Q. t. D; r. G9 q* i0 g
} //namespace QtConcurrent& U/ {& Y+ f& g$ }& e
2 K% M) I9 t6 Y% U#endif //qdoc/ k m: B4 H8 y; @9 h
) V! p% m ]' C @$ C6 ~/ U+ g
QT_END_NAMESPACE ] ^) g# \9 f2 S5 ^! Y% @5 u
QT_END_HEADER
" Z6 W* R8 l' E7 @, F% V% a1 f% f, _& e0 ~
#endif // QT_NO_CONCURRENT
( {! p$ m$ G( j+ c3 a3 V
+ Q+ {% k1 J. `3 _#endif
9 l* D4 V# y2 c6 Y5 P5 `1 z1 [. h, z. B, u
|
|