|
|
我对syslink进行交叉编译到arm,但是出现如下错误: S; j% @+ h2 R; t: E/ c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, _: p( ]6 N) ^: \+ G; ^; Y8 _) h. {& E" I% a# c
这个头文件内容如下:
$ W1 T: f3 F0 ^0 l#ifndef QTCONCURRENT_RUNBASE_H1 X% C" S m$ e; n6 B
#define QTCONCURRENT_RUNBASE_H" c( Y) Z. i7 _5 I
, [ F! \% ]( h2 N: Z#include <QtCore/qglobal.h>4 ?# v% ^- W5 z7 @
$ Y" U/ Q7 |# }4 E
#ifndef QT_NO_CONCURRENT% @+ d, x: S/ S
! C7 n0 ^* a2 Q1 P4 G#include <QtCore/qfuture.h>
8 | d+ Q. c, f4 _0 ]1 S#include <QtCore/qrunnable.h>
6 g8 s1 c5 S2 h) o% |8 p#include <QtCore/qthreadpool.h>6 L* d/ ?$ @6 g+ S; G
, ~& _0 n `2 S# g, ^
QT_BEGIN_HEADER
1 Z! [4 I C5 N# Q8 l* U) mQT_BEGIN_NAMESPACE! A3 Q+ }" t5 a6 B9 f8 w6 O! F
: C. i+ r4 L& ~7 [( }4 c; c+ gQT_MODULE(Core)2 `3 d! P! o; `. H9 T, x7 f
7 m8 I6 c; B+ U6 V% R4 [
#ifndef qdoc
x) b9 K. n! N
# Z3 \. w# v' N1 p9 Wnamespace QtConcurrent {
) T# ?& b; g7 ^! T
$ Y& b6 W' z+ y, C$ J# htemplate <typename T> {! m5 X3 E) T/ P% k
struct SelectSpecialization
( [; [8 w* O. T% z* K: v1 f9 y{
) k5 q2 I1 l- |! y8 r0 D+ Z# s template <class Normal, class Void>
6 a6 \3 q4 Y6 |9 v struct Type { typedef Normal type; };; h9 @0 y) l" \" w* t! Q- v
};
( |$ W3 P0 X& K
i5 g: v% U! d% U% Ttemplate <>
6 v8 _% g4 i$ P6 D' Ustruct SelectSpecialization<void>' g* Y1 C* }1 F& o
{2 u, W, w- I' R) H3 s
template <class Normal, class Void>
: j5 f: ^7 s9 y& s6 x- A- t struct Type { typedef Void type; };
/ {* f0 J2 @5 J& R/ m};+ r* C! a) v1 h z$ B# j% |* Q
& ]& R7 M9 n' d1 {$ U
template <typename T>' J! ^/ a& Y! |' ?" E
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable7 A% K4 f: i9 R0 ?1 f% m' f; h
{6 ]3 m) ~/ `7 g5 S2 [
public:
- j* U. W! Q! J* ?' a QFuture<T> start()! F ]: Q6 r( o9 _6 y
{6 u7 {3 f3 Y- O' g* f0 u) x' O5 G
this->setRunnable(this);
3 Q( M( [ W0 ]8 P, h8 ^+ i1 M this->reportStarted();
' B# d$ i' U0 ?* ]6 v* | QFuture<T> future = this->future();# I/ e+ X3 A Z* U
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
. p8 R E' m: L' h5 B return future;
% z+ o0 p. |1 `: M1 h }
1 Q/ X5 |6 H/ x, Q- C9 b) v' \! k$ V7 L
void run() {}
: n& k/ f) w( `# [ virtual void runFunctor() = 0;
& B' r3 D7 O3 q4 p};
9 B, V" e) W! B/ X4 C0 i$ g: |. G0 p) J
template <typename T>
o5 t1 ?) L$ @! s# xclass RunFunctionTask : public RunFunctionTaskBase<T>) G3 ~8 ^7 D) ~/ A; N
{
; |0 C+ ^& I" l% wpublic:
) S1 \2 V3 i2 v: ?/ {! S void run()
J1 \% G' u6 g! _$ @) Y {+ ?0 n) e: y9 f* [. s3 t3 x
if (this->isCanceled()) {
: i1 _6 V9 d0 [, A0 M this->reportFinished();
7 `- W7 w% {2 g; k return;
( r0 d$ h3 K) r$ k; i1 \ }
- u; o* Y l* b& D' W; N this->runFunctor();0 O: j( |+ E& a" m& `! A0 P
this->reportResult(result);; m3 b9 d2 A# E2 l2 Z
this->reportFinished();
% k" m$ Z& d% F8 _ R+ { }
9 @: ]5 o8 s! [# }% h+ M T result;
% t+ V( V* x2 i+ G% `};
{* V$ K7 o& f- Y2 G# o+ B- n! ?9 B" V: q+ k0 P# m7 ?
template <>; Z- O$ `' t, Y
class RunFunctionTask<void> : public RunFunctionTaskBase<void>8 x7 A$ c, \" j1 a; \; @1 ]$ u
{& [( s" S( y7 D5 K$ u! g
public:
( `. F* x5 x2 a% `# Q void run()0 w; L& C% s/ B) A1 ^
{' n" r, L N" C2 Q1 D6 h; t
if (this->isCanceled()) {& Q/ O* \5 u* I. N
this->reportFinished();
9 m0 X7 _1 Z) F8 D return;
+ j- M0 Q7 v4 Q5 O2 p }! p0 } A; z0 J. j' G' }' \
this->runFunctor();
6 j' x( k8 q: B" g: N this->reportFinished();
! j% w& S0 E# e/ B* O v }
; t: s" o" D6 u4 z# _1 v};3 V( p: F" F& X X3 m
( ~4 \3 x% J7 V' c% m# |2 Y
} //namespace QtConcurrent" _6 v# r' ?% Q- R
]& J4 Q% z; b B
#endif //qdoc+ q$ u5 c- `1 L8 U
! Z5 X: B9 s* m4 V% K7 _+ a& ZQT_END_NAMESPACE
, Q6 J2 P& z( v1 U! K* {9 O5 yQT_END_HEADER* j+ A5 ^4 }3 i3 @( T
- O3 f0 ~5 f. a7 I+ W$ g
#endif // QT_NO_CONCURRENT
+ w1 G, U( K2 C X* S1 _' [9 H( n) b& q3 K; L5 j5 s
#endif5 l+ f# [$ I* l% |8 J% M
# w5 u( b4 S1 J& w6 y |
|