|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ Z5 L3 F: T5 U# p/ x3 W
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter': U& K% `5 C+ @, F. e4 b
9 `) |& A8 x1 m5 C这个头文件内容如下:! [* i% E5 _* D# Y: Z# M
#ifndef QTCONCURRENT_RUNBASE_H
7 R4 s, {* z/ x#define QTCONCURRENT_RUNBASE_H! k/ I7 Y! h6 z% l
, i+ o* m9 b9 r#include <QtCore/qglobal.h>8 E+ ?( I5 F2 {, T+ \# v6 [
% P. Y/ K6 J) i, b& V#ifndef QT_NO_CONCURRENT
5 e3 T- ~ r8 N9 z6 t& P& {% q6 d1 a/ p" t1 |, @* O% R
#include <QtCore/qfuture.h>( X4 b4 F' w- x7 i. i: O
#include <QtCore/qrunnable.h>
7 n6 t. G- s3 u! q- o+ ]#include <QtCore/qthreadpool.h>
$ G3 \- _$ r5 R8 ]) |$ s2 |, Y# g; o, B& V
QT_BEGIN_HEADER
) s1 @8 N+ r, h. }8 _/ TQT_BEGIN_NAMESPACE8 z! t! t& B/ w+ j2 @, @. k7 w Y! a
. o: }* K& k% Y' SQT_MODULE(Core)
# R( n4 E/ F9 |# ~
, a- F) ]$ Y5 W) h8 ?#ifndef qdoc
! |* |0 R3 g# r9 G5 |2 z; I! A
. t. C; h/ u7 x0 S7 Mnamespace QtConcurrent {3 z5 J6 Z$ F" b0 {* X- t: o/ o
1 d) L3 v/ R! |9 P! R
template <typename T>
& _% \( Z6 t/ ~$ `; \) G6 Y7 ustruct SelectSpecialization# D' M! f! s- N$ Y( N: O
{: l" c6 I1 g0 `1 D& D# ~' y
template <class Normal, class Void>3 c/ I# Y: n! i5 g4 H4 F
struct Type { typedef Normal type; };
2 |) R* M3 ~. W5 I( j8 T. [6 Z};* \( B& v* Y t" N5 Y' z; A& u
$ _! p: q+ L) b8 U ~template <>
; R q+ I$ D. V# J( cstruct SelectSpecialization<void>
/ O9 d; y0 [3 S! _) y) q) g/ h{
3 J1 r. E2 X. Y) ~3 v template <class Normal, class Void>. R7 M3 g! ^5 A+ Y7 Q- |5 k9 I& s
struct Type { typedef Void type; };: u" V- X4 d: l
};( q8 f9 [% ~5 J
3 |, @4 {+ U( |0 }' B0 j2 btemplate <typename T>5 ` i5 m& c% d* s5 p
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: F N# X6 f2 d% l% G0 ^{
* j0 @' J" T! ^' _2 Ipublic:
" r0 e) [. i3 y* Q/ g$ e. k QFuture<T> start()
3 v' v r3 I+ [2 C# A {2 j, y& @2 Y; }, H' k0 h
this->setRunnable(this);
9 [0 [" Y5 M0 z0 }9 w# z5 n& k. t3 N this->reportStarted();
( K) T7 z* R& c: u$ o QFuture<T> future = this->future();
8 l/ r: R- l, n: O% c QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
7 _8 u* f' J3 v& C2 e/ d return future;% Y8 r: _( _2 t
}4 \' |4 U' Q3 X" w6 `6 _
# ~/ F; w! d+ _2 H: x1 Y( T# a X9 a
void run() {}0 l0 l- S5 ?1 o6 h7 p. s: e
virtual void runFunctor() = 0;# A) Y8 f8 v: X- @
};
- D5 d B0 E; F* Q5 N3 ^# u2 X# F6 C8 T- s: @$ M
template <typename T>2 b7 R# I& w! Y# x
class RunFunctionTask : public RunFunctionTaskBase<T>
3 ?* \8 U6 c( L- l0 j5 g{ H) Y' N0 P% o$ ^
public:4 t3 Q+ S8 b" j& d# b
void run()
" v7 F* y/ a" R {2 s4 j3 M# g# _# c+ p1 y1 e
if (this->isCanceled()) {
. M" c" j- X, l this->reportFinished();8 Y& t \( M$ h6 P% S/ K3 T4 W" h V+ D
return;# j2 T$ z% k4 d; g0 k% ?
}) z" Q+ s$ F. G# \
this->runFunctor();0 g# ^8 Q0 I1 q4 X* j7 ^
this->reportResult(result);: T; g. b1 z/ K* B0 ]
this->reportFinished();
" ]* D( y6 U7 H8 C2 W }
. { ~& F' H' x1 M T result;
- \) f8 s/ O0 E" @" r' r/ y5 O( }};
$ C. M# L8 W n4 J4 m4 i; n/ _! m) K
template <>
* x6 G* [8 i" L3 F6 n5 M1 o, ~" yclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 A/ H( h* O) B+ p ]! S9 |{7 m; k X+ {: {3 n5 S
public:. q, U: i$ }" |3 w
void run(): }; |6 L$ V2 p3 `
{
% \) p; ?: i | ^. E7 d) k+ I; o if (this->isCanceled()) {" S6 a. b) W- O& h
this->reportFinished();, ~8 d4 v# B7 X9 u# t
return;
( }. V% @. ?' U* |# Z }: \' G* X( O8 ]* |8 X# D) A
this->runFunctor();
- @: u+ F& Y0 ?; I this->reportFinished();
" _6 y* L9 V8 o y' ~ C/ K% [ }
7 u+ x% R+ U/ v4 _( L9 Q};9 I, B n( D* p4 A: t* |
- b4 i7 [9 G* S- X) i} //namespace QtConcurrent9 R6 P3 q1 I' j4 I* o& f
5 l2 |! {* m! a$ r" J#endif //qdoc% ^) y# Z# p- @2 c0 [' @
( Z9 s: G9 H1 G- y' VQT_END_NAMESPACE8 s' I# v7 v* }8 O8 F& A8 X" O
QT_END_HEADER
$ S# q* b; g4 [9 t# S& z9 W5 I) M0 M. @9 ~5 J
#endif // QT_NO_CONCURRENT
5 ]0 N- f! V( f% h
4 w" I) Z- L e7 r9 \6 Z#endif
8 W0 S$ k1 ]+ p) L
% a0 W) @% w/ \( K! a. [7 f3 B1 g |
|