|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. m& q+ H$ Q, ^) s& d
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'" L( T5 T3 R: O+ f: |* ~
" a/ K4 {$ d3 f3 Z0 T' h# s1 ^ Z) Q
这个头文件内容如下:
! y. i: Q/ |+ S: o#ifndef QTCONCURRENT_RUNBASE_H
5 K2 \( W6 W" L; |. o$ l( v#define QTCONCURRENT_RUNBASE_H6 |9 C+ w9 D7 I- _ U# I
! k9 w* Q) {5 ~) H! s8 V: P3 o' D
#include <QtCore/qglobal.h>
9 \* t2 { v. r9 H8 @) M
+ j' ~" T% _9 z7 K- w e% U#ifndef QT_NO_CONCURRENT3 T' p4 S: o) h g
2 f6 s9 m7 v7 o* Q* o
#include <QtCore/qfuture.h>0 U5 @) ]; V a f
#include <QtCore/qrunnable.h>
/ W. U& A, w! n8 z( f" N$ q#include <QtCore/qthreadpool.h>
0 B% q+ P5 H! b5 P1 I* r" P
& R* Q8 G& Q) w! P) \4 H4 QQT_BEGIN_HEADER
" ]& F3 d" R: |. x( k" B% EQT_BEGIN_NAMESPACE
/ t9 D, \1 B( ? F+ I" v+ M
4 K5 w4 ]/ i* e# }" `QT_MODULE(Core)' L- k; G# N# @1 W- W% k/ @
; ~( Q, G$ N: @' }- N
#ifndef qdoc2 l; f) F* c0 y( d& i
' l. ?7 B' ]# wnamespace QtConcurrent {" x1 ^" a8 ]& [- F% D1 }* k+ H7 W
) t) c! D3 v0 k' a- ~% x
template <typename T>' M9 J0 n5 f# i# s& M9 _/ C
struct SelectSpecialization
; \- k. Y7 o- X6 v; N1 H3 ]{! M2 ?! B# N) a2 f$ l, `
template <class Normal, class Void>9 m9 |, O/ K, k7 C
struct Type { typedef Normal type; };' R8 m, }* q b% T/ l, w
};
, x( u/ }+ d% E* ]5 a! N( r( a# r
template <>" g+ ?# |6 G. s* e$ |
struct SelectSpecialization<void>
/ M3 Z$ R3 d& V# j! P" t{4 Y \' [- O) }
template <class Normal, class Void>
* u1 O% ~& f4 h& C5 J U h9 g struct Type { typedef Void type; };8 a3 P: j# g/ D/ [7 n
};! c4 ~3 c7 K3 Q/ w
0 M' @# q9 k8 B8 u" _% _template <typename T>
9 F6 u- h1 L% o+ z+ [. sclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; m4 e: W! N( s
{
( W! J- v6 R+ h- e7 z; Jpublic:( @# t: C3 J" ?6 E5 c8 q% |/ C0 K- R
QFuture<T> start()- ^7 E% ?) ? O8 ?
{
( b2 f! o" h) f* b, a this->setRunnable(this);
, B2 |- h, r. n1 l this->reportStarted();
- o" L4 {% p& t [& j QFuture<T> future = this->future();$ G9 n6 @9 Y' _& r \0 q
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 j) x2 P l0 }( B
return future;- E/ ^" N0 _3 R; u3 ], W, d
}/ l. s4 }( [" k
3 c# H1 J% _3 T( y
void run() {}' R# V% r) R: m9 s v+ a2 c; g/ ]
virtual void runFunctor() = 0;+ U; v& ]9 S+ o* E( f
};
2 x0 N* U( f/ t, U6 v
4 W+ C& r1 F! Ttemplate <typename T>
# o1 G; X* P( M/ q. V! a1 K: K' vclass RunFunctionTask : public RunFunctionTaskBase<T>) H9 p* b# O. u" W" o
{
' K6 t" f( O2 g/ @: y( U6 Wpublic:& {$ ~1 S- i. u1 P6 P5 U8 x9 {8 k
void run()# }# E8 t' A+ L' h8 b8 n
{5 t. J3 ]" K* ?- Z
if (this->isCanceled()) {5 P' O, K7 R+ S3 I, R7 X
this->reportFinished();
+ R/ n$ f$ R4 I' c: l return;
8 u( @4 @6 |' Q$ a: B }
1 s# _- k' e. `' |' r% } this->runFunctor();4 [+ f: a+ [ e1 Q5 p/ [
this->reportResult(result);- Z2 p& P c0 k
this->reportFinished();9 J2 z4 s. N1 O1 ~8 {. q( V
}
; E' E, ^9 s' i; K$ T; ^" f$ k T result;
3 T/ J$ F7 b; B& b" {6 P; f+ P};
- S0 ?9 B5 e( |" \% @% b3 k- {6 x: k* t/ s
template <>
e! B( o: u& z( K$ Rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>0 X! v. _' K" j' d$ g
{
5 S+ A7 R. m, h/ upublic:
$ j8 r# ?* x3 m void run()4 Y( Q6 {$ z9 F$ J) w
{
_$ \5 Y- h, ?2 o/ i if (this->isCanceled()) {2 {6 @: r! m; K n5 T
this->reportFinished();
; M& k4 M/ ^" e1 X$ U7 ~8 Y* ? return;( {4 S- T a7 q' [3 t
}, S7 o' q& d8 E/ u/ ?( G
this->runFunctor();
, _, u) C7 f8 e' [' L this->reportFinished();
0 L7 z2 P: O6 X( D3 l8 B }
2 W) a7 k( K% _- D};
4 E6 h. P5 u8 k$ b2 p: T
. c# l' ]0 p" t2 B} //namespace QtConcurrent
- f2 _2 n' U7 j7 j: E* n8 b! O# S& w7 h' i
#endif //qdoc8 o, Y$ `! [( c7 `
$ M- O7 X6 w0 u, w& F3 |
QT_END_NAMESPACE
+ ]* O9 _1 M% a/ ]* v k7 F4 t! h' A5 tQT_END_HEADER( V# ` E! L# f" `' C
- J) |" u/ ?" m: U" y) N% @#endif // QT_NO_CONCURRENT
2 u1 v. d+ O- f0 k0 ^) K a, D- k7 X& n8 y* b6 ?% C, d
#endif
4 ^/ j; ?" M1 r- _! @7 G; J# T3 Q4 Q5 z+ |" N
|
|