|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" C- n+ f/ s/ W1 m
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ W( R; o, l" w- J, |" {! M$ U
这个头文件内容如下:7 U2 m i8 {# q; n( ?9 t Z
#ifndef QTCONCURRENT_RUNBASE_H% T& ? r' U3 M% e" E
#define QTCONCURRENT_RUNBASE_H
2 ^* R$ o7 d' ?" Y2 }
" f& [3 G$ F4 J- J3 h#include <QtCore/qglobal.h>' m$ A7 `% _$ A* y1 ~ w, G
' K& \4 y; U E' r#ifndef QT_NO_CONCURRENT0 @' W3 K2 e7 l7 C9 O; n' {! X ?2 D
3 r1 U) E0 X4 o$ @( T( ]4 b- |7 n
#include <QtCore/qfuture.h>, H/ `6 {( B; S/ I
#include <QtCore/qrunnable.h>) e6 Y2 b/ u! E2 m5 P
#include <QtCore/qthreadpool.h>
) ^' Q: N3 x* q% R9 u6 Q# i. {6 d$ {8 D# f( G% }$ }
QT_BEGIN_HEADER) {4 P q" N" P
QT_BEGIN_NAMESPACE8 L/ d8 |) M) Z" h
+ Z" e% C% ?0 b) G. X6 R
QT_MODULE(Core)
/ ~' Z4 W0 I5 `$ L* @+ F$ z U$ d; A* g; m4 E' U$ k
#ifndef qdoc: n1 }/ J5 \' \3 c
u" [4 i+ K0 q7 B3 b
namespace QtConcurrent {
% }' O8 N) }, \/ j5 c
N A3 b1 ?4 W6 y- W( b0 k( Etemplate <typename T>
; C& J3 ?1 F6 A& B% S/ Sstruct SelectSpecialization
; g8 {: ?/ ] t0 i: G2 Y+ ]( H5 o' I{7 w2 j4 S4 L+ W/ |/ Q6 g k0 w# F8 c
template <class Normal, class Void>
$ ]& t& |( @; Y9 ]3 T' m' K struct Type { typedef Normal type; };
0 |. M2 d+ X& O9 k* y d};2 ^* W1 t$ ?1 Z! L
; Z$ t9 K. ~! u, o! ^
template <>
* V3 W5 [3 B2 v0 |* |! M8 gstruct SelectSpecialization<void>1 |0 k" ` T) q% {, J3 t& c
{
. X; ]$ Y( w& G2 z( d template <class Normal, class Void>
; t2 E( d; n; q& W1 Z N4 a struct Type { typedef Void type; };
& r# [) r$ U# s};
$ R( l+ D9 z! `. U. I+ h) O( a
- r9 A5 G- ]: ~( h: B& Vtemplate <typename T>- Q% v1 \2 A& ^( p
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable5 X$ R7 i$ ^- v4 F# Q6 U# _
{
9 g! V2 A; S7 r$ \# v1 j2 F5 apublic:- J- P- w4 P% b$ ^! U. w
QFuture<T> start()
( L$ i: i/ b; c4 I4 \ {
" H" h, ~) ]' W2 R7 R |+ l this->setRunnable(this);* e" U0 A' o9 e( {
this->reportStarted();* E0 o! W* S# b6 D' H/ o
QFuture<T> future = this->future();
' H. g6 h, Z; V/ Y6 M* g QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; z; K+ _! u) c, N" G9 Y% t3 D5 m2 x
return future;' w( m6 C8 B- |8 i0 Q
}
: t9 l3 I' h5 Y) Q( D' c( |( g0 T3 H. U% o" ^8 z1 k
void run() {}3 e2 o' P2 L ?) C
virtual void runFunctor() = 0;
0 z; `% x' x0 E1 \/ [9 N};9 t9 V9 a y* l; u& X4 A
9 `$ G- f3 G& q1 a1 X% Qtemplate <typename T># P' K8 P' m: f2 e* ~
class RunFunctionTask : public RunFunctionTaskBase<T>) Z# t# [5 |) [4 e0 ~; Q
{; b; K+ a, x& [
public:
# e& v& a* z+ ?3 d% r) j6 g void run()! m4 N* x% J s9 x$ y
{
1 z/ o$ s, {: t5 I: g- A if (this->isCanceled()) {
) o/ j7 m8 K( P- d0 o% V- e/ W this->reportFinished();* T/ I. e4 I" f1 {3 _
return;+ r) Y- P5 j& `
}& i$ f0 Q2 [- t, I2 d
this->runFunctor();
! T U J7 f. F* W this->reportResult(result);
- v5 i* ?2 E' A. } this->reportFinished();
: ^$ D+ q( ?2 y' N. k+ ^ t }) r) x/ j& n* k
T result;
& l" `" x+ p1 u};4 W5 l2 Z& G6 y/ b6 y+ f
9 Q9 ^+ r, {3 ^3 J' k' Z# x! ]$ I6 dtemplate <>8 q& C4 w; `+ z$ s8 H" x
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
3 w/ C1 S0 H1 S7 L{& W; g7 M* A1 l% j' }* ?
public:* |$ i2 U/ B# r
void run()' X( s1 T3 x* e( |! Y
{
! q( |3 s, w$ N; C if (this->isCanceled()) {7 p* g, F v# |/ y
this->reportFinished();5 y9 ]: \4 ]* b8 u* z% y
return;
6 T a: C# m4 l1 H }
7 v9 b- U1 B. [5 t" t$ C4 D this->runFunctor();3 E$ P F! x0 v( I3 S% Z
this->reportFinished();
! Q5 E/ R9 j4 k, x, A6 ` }! {. U( n4 S3 z1 M' V3 J6 i
};
+ C+ \" @% y% O8 N
9 ]4 h7 m5 [2 A6 o5 [2 F} //namespace QtConcurrent
; _( F7 i' e0 @, s
: r$ L) n/ j+ v' _% k4 g( z8 A9 Y' f#endif //qdoc
# j5 B- c# ]0 b& ], b: }3 l" H( [9 D2 i2 z x1 ^( ^7 Q
QT_END_NAMESPACE+ f5 f( F6 a( G+ _5 y9 E
QT_END_HEADER z# Z" e; i! R
. T1 Z8 z l4 i9 J5 U" B
#endif // QT_NO_CONCURRENT
6 U/ ?5 t& t3 A0 S* p9 o
) o9 |+ e F7 I#endif
' z6 K, m2 g. c8 ^ b$ g, k% i
: a6 X4 ^: _& F; T! C |
|