|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( I( b9 ^6 Y, v. s" b
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'" _ ?7 c. G- C! a& |
! Z- c4 D3 P6 u! a- J! O这个头文件内容如下:
4 w! T4 H7 G8 N& I( t0 P#ifndef QTCONCURRENT_RUNBASE_H g8 Z- }! |5 @9 @: {
#define QTCONCURRENT_RUNBASE_H
8 N7 t2 g# P& }
7 Y# v' L5 u( c x2 H7 h#include <QtCore/qglobal.h>
J+ J- n; f/ O* n d$ _. \
- Q# U x7 X. h% `- ~6 T#ifndef QT_NO_CONCURRENT% ` U% h& i! T7 R: P8 }
# P) O7 C" p( p7 n3 q
#include <QtCore/qfuture.h>
, H/ U' \! C7 l$ G |7 w1 @4 m#include <QtCore/qrunnable.h>
+ A9 f8 r d( V4 P$ {- x#include <QtCore/qthreadpool.h>* j4 T7 k; _( c O7 n7 B
' }+ |5 A( N2 _QT_BEGIN_HEADER
g" n/ e, L v e7 o( aQT_BEGIN_NAMESPACE2 t `3 T% g/ F* ^$ a
3 O4 }6 C5 `# c
QT_MODULE(Core)! _ h7 ]0 c( R5 d0 U
2 ~0 s c; [2 Z# G1 v' r5 Y8 i
#ifndef qdoc
5 m! M3 S9 K0 | Q: M, q2 r. D" }' m2 B- S( A0 s2 i
namespace QtConcurrent {) c( B/ y& H$ K3 G# r o7 c! Q
/ S9 V$ z: {/ S% N6 m5 w) Z: E
template <typename T>
6 l) S0 n$ \" d/ h7 |6 J8 L+ Xstruct SelectSpecialization' J) b. N- d6 q2 V. I9 M0 h: n7 D
{
$ J& e1 q$ f: B. ` template <class Normal, class Void>* |! u. b4 M9 y# \' k+ E7 n$ z# T, @ w
struct Type { typedef Normal type; };. [" u" C+ L. ?5 t
};
# x1 y. P( q7 r& j' v, H2 d* r7 g( B2 V5 c
template <>$ C9 f& c! j* g* Q% M9 f) _- J5 k- \
struct SelectSpecialization<void>
$ d: o( g1 w$ i' H4 O* z3 Y# P{2 x( d/ h9 b+ R* W
template <class Normal, class Void>
: {6 c2 w) ]/ t; t0 r) \. U- v' a struct Type { typedef Void type; };( {0 D& @6 R( D" \ D8 g
};
$ B5 [8 \3 B- U/ @# u1 R# F8 n; z u) T7 G$ R
template <typename T># f4 ^+ ^: N% |5 t" y# \5 K) H
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable2 W# W( U7 G9 s' l, g( R, c- R. J
{& k* J3 x! g' `, Y3 x) P+ B
public:, l0 B) O8 z: g% ? q9 @% i4 Q
QFuture<T> start()
: n6 C# h& u9 ~/ Z {
. w$ k8 c, O) B( X this->setRunnable(this);5 {, K5 m H% p/ }) T7 I5 t
this->reportStarted();% X% W" k# ^$ m$ G2 p4 ^ ], s
QFuture<T> future = this->future();
2 P% k* T6 m9 Z! Q QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);4 a$ h( a% q% q N
return future;9 ^) F) A/ S. j# W6 J9 d9 g
}! Y1 {$ b$ y4 {& T7 F" w) _: ^% O* x' `2 e
4 z8 w- ?0 I; I. Y; F1 |( v9 H; ~
void run() {}2 {+ C: R# U7 S- l2 n
virtual void runFunctor() = 0; x1 H! S | H" |% `2 C
};4 K; R) l* D. j3 e9 C2 N" C6 P
4 M. {' @, c, ]# r3 @5 U$ O) `template <typename T>
$ f7 l) D- Q3 cclass RunFunctionTask : public RunFunctionTaskBase<T>
5 j" `7 z- R' J9 ?{
, S9 _$ I: c0 k+ Opublic:
{# o2 {5 T0 M$ [$ C$ Z& k, T% \ void run()/ h$ p7 E( P3 L3 c W2 l' ?
{
3 f8 w D1 M" j! j# N if (this->isCanceled()) {2 H# l+ G( U4 [2 N) O0 m5 m
this->reportFinished();/ D. ^% g4 z0 _1 {9 Z
return;
' c/ M) N4 n+ P6 U7 J1 j }
$ Q/ n+ z4 i! n N* W this->runFunctor();/ P- \* A e7 C1 e" g1 E- s' F
this->reportResult(result);4 I& w4 y' h! G4 o( P% X! G
this->reportFinished();
: v" z- ~, F7 B# {" ], f }, |( B! X$ e6 o- q z# W
T result;8 J9 }1 b0 b0 @' A- l: X
};
% n9 K5 }( h2 I x: e1 _/ J- Q1 S$ U9 J( h' x4 ?9 o9 M
template <>% |" B& R* I( h, G5 P
class RunFunctionTask<void> : public RunFunctionTaskBase<void>$ M* Y2 e0 |( i
{
! L6 x- Q8 N6 i! N2 {' wpublic:- _- R2 b7 Q) `: P0 k
void run()' l# | q( g: `! ]$ J
{
$ G0 }3 s% T) b& ` if (this->isCanceled()) {
6 ^; N8 b$ h4 \# x2 g# ~ this->reportFinished();( p) P' j9 b0 I+ C }% v4 P
return;
! l1 k8 W- j. ]7 ]# |5 ^1 j8 [ }" }( v8 _$ G& S3 a
this->runFunctor();) [/ M; _3 v) w y
this->reportFinished();
8 w# d8 o$ }$ p* o' Y$ c3 f5 ~4 R }
2 [( t; X& N" v7 O7 E};
4 [' _. q. E7 S8 W0 @& _2 [
: M& Y2 i0 ~4 z6 A5 Y} //namespace QtConcurrent
$ t& w/ l, B( T) H d& |; \8 U6 A% B/ G( J" c9 L
#endif //qdoc
2 u H7 u( r0 v; ]* R
6 E! r4 a3 ]1 @2 Y2 V. c/ wQT_END_NAMESPACE
% n z, f+ q. n2 N* RQT_END_HEADER
! d$ M/ U4 o- n2 J% |% ]
9 ^5 [: K% ^; m% U I2 q5 h5 ?#endif // QT_NO_CONCURRENT
1 q( p0 i0 @+ p+ D! [, t M; v: D% R
#endif
4 p4 Z& E9 ?8 D& N% R6 A
- K& O% M6 _2 U9 [& g: Q7 L5 l0 D |
|