|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
9 ?, k0 V y8 T2 I$ ?4 o7 E, _/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'/ Y/ D" C. C3 }6 s, f8 s
1 q# E0 l5 D/ @1 _
这个头文件内容如下:
: Y! E) E: c4 u% P' w% k# y% j#ifndef QTCONCURRENT_RUNBASE_H
) u M6 A6 u% a8 o#define QTCONCURRENT_RUNBASE_H
7 U$ k+ W- l2 C8 }9 J9 H( q) E" c4 G0 x
#include <QtCore/qglobal.h>
% F- ?: V& q2 v' o: k' T, Z0 c% p( X# U) w7 s
#ifndef QT_NO_CONCURRENT
, {% _7 l& n# @# |
! c" v' ?- j7 {#include <QtCore/qfuture.h>
% P" S* ~2 i8 v" |% a: K; n* @; x) H& u#include <QtCore/qrunnable.h>
2 C1 h* ]- C; m#include <QtCore/qthreadpool.h>- C0 z) o7 L% ?0 j4 ?$ o
7 l5 H) u. a" w2 l6 {& RQT_BEGIN_HEADER! V: _4 L) _/ u# u0 @# \6 F
QT_BEGIN_NAMESPACE( V% K O1 U$ C( j8 Z
# g3 h( \+ |) a
QT_MODULE(Core)
, R9 g- g' v! B$ X, W& j2 x8 ~7 E3 h' O F$ U; U
#ifndef qdoc
& k! f$ Z7 r3 U. Y! w* \; J# a* U% x: Y! H* X6 S. x" P* p+ g
namespace QtConcurrent {* r+ e ?( G( m' m* @$ S# E3 }/ K
. ^/ B, L: j1 D0 {8 i. r! D6 Q
template <typename T>
+ V+ X2 }" _8 y, C T" ]& I. {struct SelectSpecialization
' f/ t5 ^. e' k9 B. p9 J# {. ] c{
# p% H1 e0 J. g) _8 m template <class Normal, class Void>
/ p* V1 O" D9 Y7 `: { struct Type { typedef Normal type; };" ^" ^8 A3 l+ f) r
};
, {" D- X! f) P6 d
' q# S, ^. J- O7 L1 T- [" ttemplate <>" R6 }9 @( w) h k- T. P% a
struct SelectSpecialization<void>
5 M( R& t3 O6 K4 J- K. }7 \+ g2 X{
) S* j, u: S0 T$ y template <class Normal, class Void>
) R2 C& j0 b! V) ~; {2 B struct Type { typedef Void type; };
+ y1 H9 \( ]6 Y5 l, D2 u};' J5 S @$ b( j N# J
0 W, L. o( X! t c
template <typename T>
$ `5 q- _" k Xclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ A, d# ] I5 H$ f$ ~{( e7 \7 R7 L! r8 d* r
public:
1 G% P3 }3 `" ]3 F1 y QFuture<T> start()
; j$ Y. k0 D: v3 g7 e {' F( r+ V, c& ]* v; K& Y
this->setRunnable(this);4 f3 i# p4 V" D2 n
this->reportStarted();& L3 [0 i0 H; j1 t; g2 e
QFuture<T> future = this->future();
8 @) v C& l4 r1 k, G+ t+ z QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
0 m5 u& ?& B5 e7 W return future;
1 t4 e2 o, ^* H4 G/ `! |; o( m }
+ q+ o( }/ z0 ] O2 T8 P4 d C$ @6 k
void run() {}
% O8 f( Z. H' ?- v9 z" j virtual void runFunctor() = 0;
7 C9 |( G9 g0 P7 J9 X};
5 Q0 E" h0 f: v) r& n) J$ ^, _
$ F# |% i3 A* t' A+ Ptemplate <typename T>
: x6 Q( q) x" K" G8 o1 e/ |class RunFunctionTask : public RunFunctionTaskBase<T>
6 H& Z9 Q0 \* X) S6 z) B7 J% Y{4 x" g9 m8 O7 I! W" d
public:
4 N. A* K& B. b9 V void run()0 `0 p7 o# Y. r0 K- p; D
{
# x. X& }2 V* i! j' u8 v; A% O if (this->isCanceled()) {
5 |8 | D( O0 ?0 c# v this->reportFinished();
8 w. k8 S1 z" k% P* _% |5 g0 ? return;
1 c7 {: |( G2 I- E5 F4 p* { }
5 @" f8 N" J a% l2 z3 h. p this->runFunctor();
. N) a9 l( j9 Z+ W8 }, w; T this->reportResult(result);
* a- O) y. z) H' p this->reportFinished();
" i! |- S( [! L+ h. H }5 f9 }. A9 I1 \% l
T result;2 V# J% i$ i) S6 U# o$ {
};' g" { U. N* q( @
0 a0 z* X c( C& I6 Jtemplate <>; O* D$ J. v7 b: q7 u# X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>/ v9 r3 F, C3 Q% Q7 h! Y! K8 H0 E. T$ I
{/ [" W7 }6 M' r1 O6 X5 J7 C7 i
public:
+ I, ]0 U0 t' I1 d( f$ r void run()5 s w1 `$ y% _2 s7 P) q
{
, p7 w! I: G, P" q if (this->isCanceled()) {. I( h4 z8 u7 k( B2 @
this->reportFinished();
8 D& T8 x4 E8 U J( o/ ` return;; u( |" }3 @: k7 t
}( @. X) P, T/ m8 o* m6 H+ N
this->runFunctor();
' [' U( _9 N* ?9 H! T% w this->reportFinished();
* U' f/ V6 z/ d# v+ m" T- h }
3 g' S: }& x+ e/ J( B' C};) E' D% ]( Q, e% t; v- G6 Y
3 K1 \7 m- h- g
} //namespace QtConcurrent
' b* L- p: t$ @
* I( O: @# ?3 H" R2 g6 H#endif //qdoc7 P/ c9 v3 d# [% t7 R
6 N5 [3 Q! ? @ E( QQT_END_NAMESPACE
; C& E* p2 Z, {# h/ HQT_END_HEADER# d5 O& i I8 g5 m2 ?
$ ]! ?. ?+ G3 y+ ~6 _4 k
#endif // QT_NO_CONCURRENT( I" K/ o4 j2 r' u% t8 R' }
- `; k* w5 ]' F7 r8 r
#endif) h/ @% Y( U f4 [- l
( A5 j- W! o. A% U% l |
|