|
|
我对syslink进行交叉编译到arm,但是出现如下错误:6 [4 n c- B' ^4 Q- w! V# z8 O
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'0 F5 ]4 P3 q; p5 G
$ \ \* _7 e8 o! |6 E4 B这个头文件内容如下:) G$ F9 y/ g( Q+ ?4 k
#ifndef QTCONCURRENT_RUNBASE_H
+ X/ _5 ], K3 H$ N5 f0 ^2 ?#define QTCONCURRENT_RUNBASE_H1 h+ W! m d" H4 ^/ n+ I; v
5 K: a) n3 O& W
#include <QtCore/qglobal.h>1 c" s/ }' s1 T5 ^4 a% x4 z+ R
7 A- q) O2 @4 p1 ]
#ifndef QT_NO_CONCURRENT
9 t; o" t+ a# A1 `/ Z6 b/ H/ A3 M1 M; H1 I @7 V" _3 E
#include <QtCore/qfuture.h>" u% o5 \/ h% k
#include <QtCore/qrunnable.h>
$ G1 r- F/ K7 P! @#include <QtCore/qthreadpool.h>
+ R+ I: G d0 r% f/ F: A0 P
* x& Z, P! s( Z8 q; {- O6 M v$ [2 lQT_BEGIN_HEADER
" N. N: M- x4 H2 D+ c4 n( d9 ~QT_BEGIN_NAMESPACE4 R/ j3 |1 a- e9 X
7 h( L/ t/ w' `& w" l4 `) I' c* X
QT_MODULE(Core)! i4 I7 t1 x% @( L
' Y0 G3 n- y. h+ r, T0 u
#ifndef qdoc/ C1 D3 X6 S3 A# k: z; |7 _9 B
8 m u. ^2 o- H5 J$ ^
namespace QtConcurrent {+ N5 z. T' y3 p. x1 f6 w& H
0 r, @& [3 A. y) ]0 Z0 ?template <typename T>
& c3 \+ E9 D) |struct SelectSpecialization5 f- D- F# T. f3 J2 C0 I; ]- w$ E
{
; ~$ H% b$ q3 u2 c template <class Normal, class Void>
# D# s" F& S- R+ u9 C' n. J5 y9 R struct Type { typedef Normal type; };
6 O) g& ?" @6 K. f};" R k% U% i% G4 I6 }# d
/ ^8 a0 V2 ~ [) l. [3 Xtemplate <>( C4 q! C' p& K- |9 x/ W2 @( l
struct SelectSpecialization<void>4 F4 ?2 W8 {7 C* W( b9 X
{9 a# a6 X# f0 N/ e
template <class Normal, class Void>( L. G* \5 F$ f2 ]8 U
struct Type { typedef Void type; };" {8 w4 c" i T* K& _, R5 O
};1 {$ @2 C2 z8 o E
* {8 V/ j5 X* O# n6 ~$ K) V. D" T5 Mtemplate <typename T>
( ]! b4 j% C$ cclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable/ {3 S( n1 U$ Z) D2 f7 \: [5 E# T
{
, C9 w& u$ z: K4 D0 }public:
5 W! f9 ~" [- D1 a QFuture<T> start()* n+ {! u* W5 l5 Y* G8 ~" J
{
# `" t9 z9 ^7 s, l" }& n% q this->setRunnable(this);
9 l2 @# w; p5 Y9 @ this->reportStarted();! w/ J# H: f! K& {7 g: Z! C, z4 z
QFuture<T> future = this->future();
3 h8 b4 C# X0 k9 o0 g QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);* ~7 x0 i( @' Y
return future;# |. {6 l- V0 J5 `* U. o1 a
} d" }/ O* R6 V2 j) d
- m) R6 y- ~( `/ I2 ]5 N void run() {}+ x0 t3 H- m! m8 U* g
virtual void runFunctor() = 0;: V( n* W: O7 B; u- p
};
% L. A! {5 E! u) T0 y4 O6 R
# d7 K- ~2 E/ N5 A" o# Wtemplate <typename T>
% Q( W: G5 p& q; w+ h- ]; H$ d" Mclass RunFunctionTask : public RunFunctionTaskBase<T>
# \, I! M m, I! G5 b7 X7 c" J* Z{
0 M3 K9 K4 j7 u! {" T/ Tpublic:4 Y7 a* }$ e: a
void run()
3 J8 @& h( z8 E9 `2 J% i% q* u {* F( I$ D& j+ M& q. ^4 A" L! Y
if (this->isCanceled()) {
+ @* t& r5 Z! T$ Y( {7 B) ^( r this->reportFinished();. k' o% Q7 }, R" w A; Y* ^/ g
return;
( N9 R! K2 f' P+ W }! \# @3 U; I( o$ s2 H
this->runFunctor();# ^9 W1 D Z' ^9 M! w, g
this->reportResult(result);' a/ z1 h4 v0 ^( k2 l
this->reportFinished();$ Q6 p3 f& J2 y1 u; \0 M
}- A9 P$ B4 i$ ?! [1 ~
T result;: C! \ j& Q5 H" C" y
};, l0 k; L. F) f3 P! q8 a
9 M; e V) y- G {4 _) Ztemplate <>
7 r' B2 w6 t7 w1 h" [8 g9 Qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>) O, l! _/ _7 C3 \2 @& N3 M) Y: I
{1 i* _6 ~) U& I) |9 o" {
public:5 s- x/ F3 b2 O2 q, ? W
void run() D2 Z2 Y) i6 U$ Z$ e
{
2 h; o8 ^$ C7 _ j2 k2 l j( L; A if (this->isCanceled()) {+ |, m. p' h7 _% r3 R1 B
this->reportFinished();% Z. A0 B Q: N& D5 c! }- ~
return;3 `9 x2 z! d: Z
}
b" E, ~! a" R0 ? this->runFunctor();
3 ]' H- \2 [$ ? Y this->reportFinished();
- M: O- P! ]+ ^" M$ T }
- c- s1 ]( o$ S* w) l};: V; k: p1 O: u: B! A
9 h' |9 \% n3 b9 L. Z7 `7 Y) Z+ \} //namespace QtConcurrent
6 J6 c& e8 Q1 l; {3 ~+ W6 {. U
# V0 n$ f+ U% \) E2 c, m/ _#endif //qdoc. ^/ t, S2 R; H; g
7 s& ?8 d) R$ _' O+ i9 o
QT_END_NAMESPACE
" B# e' J6 z# X, D. f" l }+ WQT_END_HEADER
" |/ m8 M! E- [9 B3 v @
, o3 I) Y+ l( D* B8 t3 o#endif // QT_NO_CONCURRENT
8 j4 m6 e& m* J6 Z3 R: \
% p, h }4 d4 `7 f* B* ]6 S& m#endif
' ~' R/ Q4 Q' c. b9 @' u; h3 W1 R6 b0 o1 A/ Q0 i
|
|