|
|
我对syslink进行交叉编译到arm,但是出现如下错误:3 v: M* \! w' v* u- i" J
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
" K" F) P6 P/ s* M7 W9 i% o+ v, | X; k
这个头文件内容如下:
8 Z: [" Z g+ i4 [4 d#ifndef QTCONCURRENT_RUNBASE_H
5 k7 E1 z, N1 B1 W. j- F/ I#define QTCONCURRENT_RUNBASE_H
9 W) B5 ?# B# }* Q J
" u4 R, c5 r* N+ r+ @5 |6 ?2 p#include <QtCore/qglobal.h>" r2 j* |. w7 l; c( O' b0 |
/ X( B6 V) P* @# Z#ifndef QT_NO_CONCURRENT
* u3 ?8 ?+ b- a* B4 O; J2 v% n7 @1 X% m+ T
#include <QtCore/qfuture.h>& J" p% c5 a. A5 Q6 J
#include <QtCore/qrunnable.h>8 ^: j6 a4 ~0 b. x4 h& m
#include <QtCore/qthreadpool.h>% w: ]8 ^- m, r4 P# E
) |9 g9 b' z: F7 M8 }1 j
QT_BEGIN_HEADER
7 ]" r2 x+ _0 s" f) Y/ i% S- E" ?! WQT_BEGIN_NAMESPACE
2 N- V7 C% j+ k6 a0 s
/ k) U1 q7 L% w4 z8 W5 UQT_MODULE(Core)
5 e% G4 T3 Z6 h1 L% Y/ M4 |* F: e, q, ^6 D) c
#ifndef qdoc. ~9 Q; p" Q: ]
! I* Z( j5 {# c% _+ x
namespace QtConcurrent {
4 a9 u A. ?1 E) b* M8 U+ x+ J) b3 d/ w+ T
template <typename T>
/ g: f3 P/ S J: m& jstruct SelectSpecialization
0 F& i& W& [3 g' L4 ? k* q{2 F3 v7 E. V; U1 Y+ C: |# s6 z" _
template <class Normal, class Void>7 P6 Q$ h- H0 l0 \* R
struct Type { typedef Normal type; };4 {; \8 c, n# ^+ P+ @0 ?. L
};
# Q) ]4 w: O6 I' U9 B
, o* Q; d( _' ctemplate <>' }" d* A% C( z: P% k! y7 p5 k
struct SelectSpecialization<void>8 b* O/ Y8 a; G, G) l
{* [. T% n& Q6 L! w1 u: q
template <class Normal, class Void>. |; V" t1 A5 D; O
struct Type { typedef Void type; };
5 m1 t( @" Z# o( W }3 w1 p};
4 g2 G9 f/ [) ?* p8 f |+ p; f. [
template <typename T>3 o4 q! Y2 {! K7 @# D G
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
8 o) u3 h3 Z+ A' N- ]& r- d{; h p" [1 r( F4 s
public:& X' f3 B5 p5 D) e! j
QFuture<T> start()
( ?& \0 I9 C. m% N {
) L- N' W# K: w% O, |# I this->setRunnable(this);
, ^) l8 q' Z, e7 g# \ this->reportStarted();
+ ~. a$ D: Y" o! z9 H8 N QFuture<T> future = this->future();$ M+ _0 H1 J* [; V1 w# W- }8 B# A
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);$ p, ~2 p' N9 O, i. a
return future;# [, a( P5 }: _4 T
}1 n3 S7 Q/ z) j$ f& ?; u, v% v
0 P7 e. t9 A* R% l
void run() {}
3 A% r7 `! |5 A g3 Q virtual void runFunctor() = 0;" R+ M# O0 K- l/ g" `% T9 Z
};6 m& d6 U8 q' V
5 q! v+ G6 s) S" @* K/ xtemplate <typename T>: f! ]$ v. x0 J
class RunFunctionTask : public RunFunctionTaskBase<T>. o! o( u. y1 F9 `2 |% Z4 }3 J; F' x9 D
{
# ]* A/ f" D$ N* _ ]- Spublic:) {' V3 H" M% g5 e' }
void run()
' q. {: R6 G* h# C8 p {7 S0 t9 X! y$ m! m8 B
if (this->isCanceled()) {
, Z7 I/ S7 |. q/ d; V1 D! q( F2 F this->reportFinished();
# r- V1 }' ?! Z- T" N return;6 A9 p0 i1 e% L% c9 P" f) @2 h) ]
}+ V' ~- L* w- f* x8 v ]' }7 {
this->runFunctor();) x* n x* q7 }$ \
this->reportResult(result);
7 ~2 a5 m+ Y; i( D! ^; v3 x this->reportFinished();
( R4 m, h; a$ Q/ T f% p }- a+ N' S t4 _, |! t1 e- D$ C
T result;
+ ]5 W1 r; W2 u};4 ]" J4 U) l7 f0 Z
/ [7 B# y5 C& v
template <>" q# t/ y- q5 O1 l( [3 w. a9 r
class RunFunctionTask<void> : public RunFunctionTaskBase<void>. w6 n2 D m/ v, `; ]( k) N
{
' `, W2 m4 Y3 U& d! }public:
2 V. a- A8 g% P& r void run()
! D$ m3 A* k( T: B3 |, a, R; W {6 k& { a! Q( J5 q5 Y
if (this->isCanceled()) {
. o7 n4 _' d3 `8 N" t# ~ this->reportFinished();2 M3 R6 w2 {% u4 d: u
return;- o. ~' m4 { z; m) U
}
" `- e$ e: a% _$ d this->runFunctor();+ y# l, c# D) H' G7 F7 c8 E" T
this->reportFinished();
& ^+ A$ t3 W) W. \ }
' w& T) C! m8 ]};
$ u; D* ~: U- R, j. f6 w
# _; ?; s" c4 o1 I} //namespace QtConcurrent
P* V, L4 x3 m% E% N8 T, N, w9 f q2 } o: G3 J" Z6 X; s
#endif //qdoc
. u3 [ y. A5 ]" l0 [- q
/ K9 P, [4 E: f( IQT_END_NAMESPACE: g0 p6 J$ G3 {6 V
QT_END_HEADER
7 D* x8 t0 r4 y c0 A/ @
% z' j! g$ P8 [) o8 C8 K7 i1 a#endif // QT_NO_CONCURRENT* r8 I' \+ f- N" a
, j# V: F! W8 U+ k
#endif1 ^4 x( Q) t- I' B" j) s
& |( M5 e: | E |
|