|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
$ R: j/ M" l+ Y" r. d" F4 l/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
. i4 I2 }. t; A3 h0 i3 |4 g+ L& q% l" R; {2 Z: _5 a
这个头文件内容如下:
! j& V1 d% D& F" i- ?1 |5 L#ifndef QTCONCURRENT_RUNBASE_H8 M+ ]+ i. F1 O4 }; O; B
#define QTCONCURRENT_RUNBASE_H
# f7 Z/ L6 i E9 ^! C4 p
8 R* K8 r7 m6 A! t9 m$ x6 ^#include <QtCore/qglobal.h>
1 J [" r, r& X' d4 ?# W
- }! k* o9 M/ W4 p6 q( _#ifndef QT_NO_CONCURRENT! C5 z& }6 k( e3 f
: |3 N: F7 |" r @9 I* q
#include <QtCore/qfuture.h>9 T7 T* y1 b2 [& p8 z
#include <QtCore/qrunnable.h>
- O, |# T! g, Q1 p3 [$ F( G9 w) H+ q#include <QtCore/qthreadpool.h>
( p+ p6 |8 u( Z2 c* I& z0 T8 a+ c7 _/ l0 R
QT_BEGIN_HEADER4 @, G0 ^! i6 b F1 f/ a
QT_BEGIN_NAMESPACE5 n; R8 m. r2 H& N1 x. |" I) W
$ a; n" }. q v M' q; t1 @" K+ f6 uQT_MODULE(Core), W4 d, E7 T. z ]% J. }7 ^( G
# a* x2 ^$ O; `7 y- d
#ifndef qdoc
: C5 {# q6 D: j; W0 G- M, x8 n+ `4 b
( p& Y7 v* W9 ~* b8 E) C- onamespace QtConcurrent {
( h/ y( l' x5 y# }6 j$ {: r. f R1 {. I2 W' c( f* d: u; T
template <typename T>
9 ?9 O$ A! s6 u ^; Z: Ystruct SelectSpecialization( u9 }1 f) i9 Y: }
{
3 j4 d r6 l, l" }( }& E template <class Normal, class Void>
- q- w1 n7 U% X# L5 k struct Type { typedef Normal type; };
3 {. V4 [) Z8 T5 C( A: ?" k# I};
5 o5 q& X5 g$ H7 ^6 [, `- g1 S8 p) x: A
template <>) `2 K0 [: H4 }8 i+ I
struct SelectSpecialization<void>
) @ F6 k! ]1 N- f) K' K& R Y( p% X{
# L8 G2 i g8 w# l* z: t- d template <class Normal, class Void># N8 c& b" W3 m/ \% |! f6 o
struct Type { typedef Void type; };
( ~6 h4 i3 K+ ~" r, H/ P% e9 |};4 Z/ R. u8 K9 Q( \( {6 J
/ I a' r3 X. |4 E7 W
template <typename T>
: K9 p; Q' g( W) t, bclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
Z1 i/ X8 |3 W8 w I* `2 C8 S8 {{
; H; M9 N% E8 H" q& ]public:
0 `) C$ c" c% W5 q+ x QFuture<T> start()
! \+ ^" d( \' J% | {
+ R5 ^" h! O6 ]! A6 g this->setRunnable(this);
$ x3 T- {, [! g! s, R this->reportStarted();) G1 u4 H1 x- O( n# y D
QFuture<T> future = this->future();
+ T# [( T: w' [4 `: y2 z8 J QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);4 j0 k+ s5 h) ?4 O( n" u* x( R2 u
return future;
+ p O# \8 ^) C& j8 g o }
+ y. a+ {2 X0 p4 [- n, u$ j/ ]4 N' x3 ~9 A
void run() {} z0 u$ u* W7 m' x$ [
virtual void runFunctor() = 0;
$ q; s% d- Z, [' _: }5 T};
6 U" k! H5 ~9 K* v* h3 U* `/ N
' \+ @3 a- X' d+ btemplate <typename T>. X+ P/ y" j1 ?& l- r* x p! S
class RunFunctionTask : public RunFunctionTaskBase<T>( W3 w( N2 K6 f+ \
{2 l5 s7 n3 m0 A% V; y4 A6 w
public:
( c' F/ A: b0 r; }, G! b void run()- g; M% S% E8 \! v/ z8 U. N
{
3 p( Z# e; ]* t% J9 n4 s1 u if (this->isCanceled()) {( h; ^% B# S! P3 Y4 l1 N
this->reportFinished();
_" V9 q$ l( p2 s' _. \5 i: r return;, ]$ i. I- H; j% j
}
3 w; Q8 q- u3 o8 l6 t* g h5 j this->runFunctor();/ Z4 J8 d' g/ \* k; }& B- B
this->reportResult(result);
- \& D# E* k- v this->reportFinished();
+ H; u, ?+ u, b7 u1 Z* z1 Q }$ {- {9 @7 W- G/ D, ?8 e5 A& |- \
T result;3 ]5 D b: k) |/ H
};0 ~9 w8 E4 W& i' n( l% @! N7 [$ z
1 D: h- @/ R8 T- ytemplate <>0 M& q* `. b7 c/ ~. I
class RunFunctionTask<void> : public RunFunctionTaskBase<void>4 L% e- D& e" Z/ |& z
{ |" ^/ U" T4 x% I
public:
9 M. J/ G) ^1 X$ _5 j: w void run()
* E5 f) B$ W. H/ ~* }9 B$ X {* @1 W, }& T8 G i. h
if (this->isCanceled()) {
; C1 c% U5 f8 E: }+ U2 J this->reportFinished();
5 y( f3 s4 b2 V) e* b3 X8 w" j return;" r6 f) t7 ?) q+ P
}
# m; k- L1 H/ Q, g& p+ l this->runFunctor();
+ v4 t; Q3 P/ l& S this->reportFinished();+ X( t# \# j9 d; T' C' d$ A
}3 p: c) y6 t4 e
};
4 t$ [# e! B" j# e& i8 l6 k2 w& x1 q/ I: l& T \, u* C
} //namespace QtConcurrent. E* v/ k- I& D% N' a: l' g
, j7 `+ u! p5 h3 u
#endif //qdoc8 e" d' u B+ t' F" g( `& b
) Y4 u5 A8 l2 U# R' S8 k; M
QT_END_NAMESPACE& N: Y4 _$ l% c; K. x
QT_END_HEADER
6 v& V) D* X8 ]2 U3 c+ m8 r
( F7 P: |1 d, _9 p, V3 U# C; y/ ^7 v#endif // QT_NO_CONCURRENT
( \. q) ^5 w2 u% f! |2 t9 B6 ^7 g4 v1 l+ T2 p+ w- {
#endif
; Z2 i& } V; [6 C- y5 r) R0 j! }/ ~" M% X5 K
|
|