|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 }, L z4 A7 P3 ?
/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. f0 B9 r- z9 P
X+ p" D8 r3 b! ]5 p这个头文件内容如下:
/ ]" ]/ P5 s7 M4 x#ifndef QTCONCURRENT_RUNBASE_H
7 a1 z1 g$ E- e$ t#define QTCONCURRENT_RUNBASE_H9 f5 L: C) z! x! i2 v& f- _
, o4 X1 m, }! E+ Z- E+ ]+ G
#include <QtCore/qglobal.h>
8 N" k" J P! P+ i- i5 l I1 o0 l6 }" ^+ ^& @
#ifndef QT_NO_CONCURRENT
# I$ x& [6 J8 M! k% p
6 V- t; D+ @8 o8 A( o#include <QtCore/qfuture.h>
6 E, u6 ]" P5 f% z# o#include <QtCore/qrunnable.h>
+ D0 T1 D P7 s* I#include <QtCore/qthreadpool.h>' f8 o: A0 }6 P- |/ Y' P6 q9 u# t
' K0 a0 o% M5 MQT_BEGIN_HEADER
, B0 g7 c' h$ m$ Z. ]QT_BEGIN_NAMESPACE
; c- m7 e* w! j- ]: o9 d: T
- w/ ` h! @4 r3 d7 }1 qQT_MODULE(Core)# _3 D1 Y- V8 k2 G* _
: f8 W+ l2 U0 \$ y" h
#ifndef qdoc
' l* L, V/ d) F6 ^- k) R; }, ^; m; b
namespace QtConcurrent {
' S; H, x- r9 ]' S9 H4 c2 v5 \# Q" J- R: m, W d: v0 N
template <typename T>
* b# o# |( g2 |/ u+ B! ^struct SelectSpecialization
$ ^; ]- q* Y& v! b0 M{& h1 X. D1 z1 C! s5 W/ |
template <class Normal, class Void>$ X3 ]+ h! O. y$ a
struct Type { typedef Normal type; };
5 p5 j6 A! p& P0 j};( L% I; R7 u) B
! i2 @5 f& F% G8 L" \2 ntemplate <>" q+ }( I! ~! h$ r7 i4 |9 d
struct SelectSpecialization<void>
4 \* R# T: n! T H{
3 [- r( U5 Y: [3 b) o( i template <class Normal, class Void>6 E; e1 w, `# ?3 m3 I
struct Type { typedef Void type; };: U' i! y+ d$ k R/ z
};, M. ], _) k* N- z; J. g1 K
. X, T6 c! a5 s2 b3 r) k$ q) otemplate <typename T>
8 Y; f7 ?9 M: v: xclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 @1 `2 ~- N" I4 M& D- v- j{& y1 \* _# p0 [1 W- m
public:
; ? D7 @% E# M QFuture<T> start()7 T# T& j$ v6 @6 Q. N
{
' F1 t2 S8 v* R) Q8 D0 o3 K this->setRunnable(this);
! G6 l4 h: y p this->reportStarted();
) ?# P% Y; M# p7 A& M QFuture<T> future = this->future();
" l3 c; G% \* Q9 J/ ~, \$ Y QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);2 D3 V' T- l3 t, i6 V* p4 }1 t8 m
return future;
$ K! j8 o2 r1 Y0 x/ g9 p" U }6 M1 H+ t6 D! s" V8 E) H
' N6 G/ w* U0 q3 V& o
void run() {}
& D F1 r' R" E4 @* T* w) s virtual void runFunctor() = 0;
4 F( b0 ~$ }* k9 z' m9 r0 q, {+ v. i};, f: z3 f) m4 C" n; T3 H
, u# k: h/ ^( D. o* p$ V
template <typename T>* Y2 I# {- g9 q. x V4 }* s) Q
class RunFunctionTask : public RunFunctionTaskBase<T>! P* ]1 B# P. y$ r R" r
{
. c c+ V' S( T$ X! m& l% xpublic:
/ f" e8 ?1 ` j4 W. V% `) y! R void run()' Q1 Q g8 ]7 f+ \1 I- g
{
/ y! ^/ u9 ^- Z) q if (this->isCanceled()) {
1 ~& O, R' h0 g& _ |# \ this->reportFinished();
# s* H/ z3 s" ^6 l return;
4 _6 F' R2 ?/ V3 m }
; F5 l x, k4 r- z, V5 e this->runFunctor();; R- h0 Y) x, W
this->reportResult(result);
: N( X! w+ S7 Q5 p! w1 Y this->reportFinished();
4 }+ W7 a& k+ z* T9 L; {! M }) o; _5 ?' |& x
T result;
( a8 Q7 ^! @% _& }6 U1 L/ Q};
# ^; H U7 F! R. _* i8 B# y0 d: Y$ n" F) k
template <>
4 J0 n- ]# x. bclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
& Q7 h; a$ J+ ]- D' {{
: c( U; m A: W' k9 k$ ~- e9 R, Jpublic:
! e( A- E0 S9 B/ N/ X. T3 H3 o void run()5 h7 |% l. Z( d
{$ g% Q @! a; F/ n( s
if (this->isCanceled()) {7 F( W/ b; G/ E, q9 V
this->reportFinished();
" Z, l2 Z8 @8 a# o( x$ a return;2 M5 U' g/ m4 t1 u9 V0 a( e' C
}
& e& q& _* {8 a! G, |, X6 K% u this->runFunctor();) s3 W$ |, X7 C8 W
this->reportFinished();
2 F7 O# Q* f. `) w2 K }, ?2 \ I% H2 W7 y" U
};
- E4 A& Q2 w4 m5 h2 L
( _; n/ g) F! I) J7 y; A. {} //namespace QtConcurrent
7 q+ d6 G" W8 j4 B+ M; m1 G
* u) @/ x( V9 f4 V( S#endif //qdoc7 K. j: E1 m: W; ]: `
9 {4 E) J/ P- c, G2 X/ RQT_END_NAMESPACE
T5 @- ]+ W* |$ d7 E+ |QT_END_HEADER
j% `# H" N( b8 V: _
5 T9 R* y" U d# c#endif // QT_NO_CONCURRENT& W* P% f. t5 L+ ]# H0 c# c5 ?
2 g, `( z% P( c9 T: _/ D
#endif
; t1 k) p7 y2 {. z) K1 |1 R3 d) V* b, Z# a) h- o4 G3 f% P
|
|