|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" x" _- H; U9 }/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
; d/ i2 k" |3 M* X3 h [* e+ B1 y6 Z: t
这个头文件内容如下: v; U5 R& o; v! [8 {
#ifndef QTCONCURRENT_RUNBASE_H
/ y" L+ T$ A* @4 G; F! C#define QTCONCURRENT_RUNBASE_H( M4 r( P) `1 B4 F( ?$ z9 x" H
9 x% p9 `9 `. w: i/ c0 _( |#include <QtCore/qglobal.h>, o5 M* q7 V8 y, m- G8 `
' c4 c3 I# h1 p% W& X3 p#ifndef QT_NO_CONCURRENT
7 v: q3 h* E, ?, J; C9 N8 r0 @! ~4 O, `( z
#include <QtCore/qfuture.h>( e! ]) s, |( P- `0 c
#include <QtCore/qrunnable.h>2 H9 K( H8 [$ T; t4 Z4 t
#include <QtCore/qthreadpool.h>" C7 g4 \; l8 M
4 a f$ j5 H: n! r+ b
QT_BEGIN_HEADER
& X2 O" k" P+ f+ iQT_BEGIN_NAMESPACE" M0 @$ B; E; |0 j0 L W, T
( Y7 e5 J" D- M, q# zQT_MODULE(Core)
" u# g. J" o" e3 I4 J6 M" ?" \- R0 s/ X: S& F5 l$ \) l6 K
#ifndef qdoc# W. [, I! Z) q
% V/ D$ I, U! V% ?1 r6 a( p# `" a
namespace QtConcurrent {# Y8 r* R8 {6 x+ U3 c( j. ]
$ b T' g/ ?, I5 I! Qtemplate <typename T>
% Y+ x$ _: g4 E5 L- dstruct SelectSpecialization8 g4 D: ?: k/ @
{' H( K- c0 x2 A$ ^& u
template <class Normal, class Void>5 i& Y& X7 }' h! |- u: M4 E
struct Type { typedef Normal type; };* ]! _' C# t; V' X# X- {8 N" n
};
. X h( n* f- l1 `2 o/ ?4 e Z5 x2 B2 A( A) @1 U! [
template <>$ ~& G1 k# y' K9 Y
struct SelectSpecialization<void>2 ~6 M/ J' Y3 r- G
{
$ A# K& T1 _# j9 D template <class Normal, class Void>
2 z! \& F- Y9 y4 F1 C1 U7 ]- h" ?/ C struct Type { typedef Void type; };$ }8 R# f* U* S* H
};9 U# ~9 H: C( ?/ n& ?5 J! P1 ?$ g
2 j2 G( y; G# }template <typename T>- A- u) _- Q9 t6 Y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
N5 w0 g! y% j3 |- a{8 N) _4 h3 }9 \" E0 M5 t& J5 P
public:. e+ L4 J1 A8 U$ k* [
QFuture<T> start()3 L4 t+ D) p3 R: q+ |' a% T2 ^
{
, N- P$ R1 j; T$ G* ] this->setRunnable(this);& ~% F/ X6 Z1 V, T
this->reportStarted();: ]& [9 B9 ?5 y3 F: _4 U3 b
QFuture<T> future = this->future();7 E1 j0 v; P- V7 K1 [
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
$ R5 c& Y/ A* e/ X) ~+ H) W0 g; m return future;4 q! z8 r" Z6 P% i6 n" }" W
}
, r/ X e7 b0 n) }" @( c
+ o9 X- {# _& ?' `8 C1 s' h6 _/ K" f void run() {}. o4 y' V6 K4 P! b
virtual void runFunctor() = 0;
* J+ ^8 r5 p1 H# p- g- u/ W0 `};
. l# u) O! Q8 K3 |) |5 M, P' M9 j+ w6 h1 w h1 d! v8 Y
template <typename T>4 A+ R+ r2 _% L6 d' o. a, |
class RunFunctionTask : public RunFunctionTaskBase<T> v; j1 u. @$ h% a$ v0 i. \
{
8 W3 H7 k6 f! d. i# C7 npublic:
" V8 l! ~7 D# Y4 u, h void run()9 c. s! L4 A! z. \8 q" D2 F
{
1 l1 ^3 q7 ~5 i% W$ }: r- t& Y if (this->isCanceled()) {7 K! B! q. C. H, _6 O1 S& y4 ]* P
this->reportFinished();8 Y! ^" o A* X! m/ g" q/ [
return;
$ X& q7 d* P& t7 h9 a }
/ L0 g. t+ c- B. H: g) N this->runFunctor();
7 L) C5 X1 A9 P* ]3 s this->reportResult(result);
# U7 a9 i% n+ n1 K, d+ t this->reportFinished();
. z8 ~5 U' `+ X$ X }
1 Z* w! G$ d) H1 Y3 \ T result;
' L; Y4 h& Z9 t( D, V' G9 x};
; ?4 d* I7 K H4 W" G' [% W7 u/ g& A9 E/ S' c i, n" o
template <>& K+ Y& g! x4 U
class RunFunctionTask<void> : public RunFunctionTaskBase<void>& {: K. d+ i1 M- ?! z1 K" Z
{
) O+ `& d- x. @public:8 ]3 M7 F! D, }& C% P) p8 l- Q
void run()
8 c; J" u. r' i/ f3 W7 m/ v {- h" z( T N% p5 F
if (this->isCanceled()) {
1 _$ }$ h: I6 q$ n, V this->reportFinished();
$ A) y9 s6 m" Z3 o1 O& E return;. X2 W6 n2 f$ X
}% a g* j1 O, L [8 l" e% ?8 j; K
this->runFunctor();0 m9 d, f. @2 Z3 M! @' s
this->reportFinished();
& F: _ M& y6 ?$ H; a3 [" W }
% J9 ?" {% n' D0 }5 b};2 R5 L( Y _# X+ s. t8 z0 L
3 s, z# J2 M; n3 m6 d: H
} //namespace QtConcurrent
. ^* |+ N' Y9 {' e" ?: \% u( A; b! D7 i7 a+ E
#endif //qdoc) Z1 d* @( {" s# h( ~
+ n/ f, C# Q1 q$ O; g# E" D" YQT_END_NAMESPACE- Q" o7 w+ t- T5 B$ R+ e) Z
QT_END_HEADER
$ O6 \- C; u3 ]0 k% _+ I/ f; S* Q% V% B( E0 q: _3 o v
#endif // QT_NO_CONCURRENT
9 v, x9 }0 ]- ]% @+ y$ Y9 Z4 K& J5 @9 C0 q7 |
#endif* j" T/ V2 o5 X# Y$ O! t0 {
3 m4 J/ D. _2 D8 l* \6 D |
|