|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" V( D9 K9 E q1 D& V! y/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ D5 x. l' C2 q6 L# e6 R3 h" \# B$ U. w* {% {
这个头文件内容如下:
/ Q! h) g4 H+ Y; m" ^#ifndef QTCONCURRENT_RUNBASE_H }7 \8 f9 B$ y2 u r' z* t4 j2 Z, Z% B
#define QTCONCURRENT_RUNBASE_H% S1 R& A9 t( b: Z) ?; N$ ~" C
5 W' n( b2 u) j* n K b) p
#include <QtCore/qglobal.h>
! v# t+ _7 ^; q9 P; J* j S+ x! e/ {* W+ {
#ifndef QT_NO_CONCURRENT& Q3 M, {1 r, x G7 ? C0 M
, j6 A4 P; n+ a, T
#include <QtCore/qfuture.h>) v4 t3 S, I' H. d
#include <QtCore/qrunnable.h>; U; K/ s" Z, z$ P/ H* c
#include <QtCore/qthreadpool.h>
# Y/ i& K$ e. W+ V+ B5 t0 t$ G# j$ f( x' D1 u. l; }
QT_BEGIN_HEADER
5 Y0 D4 t* b7 a9 NQT_BEGIN_NAMESPACE/ u9 f- o+ \+ }/ i1 g" \9 B7 g- R
2 p1 H, `, J8 j7 W0 E/ w
QT_MODULE(Core)
" h( c$ e" n0 G1 {! d
! p2 e# W) [* f$ w/ {#ifndef qdoc
0 w. a, u7 L1 S1 f9 N" {7 b T/ P+ e6 @0 e# v
namespace QtConcurrent {
]4 i2 S& l" j3 D. h& @; l) n" o4 L3 c7 s B+ V# d( G
template <typename T>+ g7 ~( D t7 u/ D
struct SelectSpecialization$ O2 z: M0 I- Q7 E6 t2 x$ L1 u# [
{* k5 n9 e1 a% M% f9 T
template <class Normal, class Void>5 X" {2 d( Z, s7 W
struct Type { typedef Normal type; };" @, ]" P/ o# y: G5 M4 k
};
. T8 ^* ]# Y% b% k R- x! C( t S( e: l8 q) d% g
template <>1 j1 a* N! A/ W! M7 X9 o
struct SelectSpecialization<void>; Y- X7 z+ H+ b- }
{
& n" W/ g3 C: v$ v( v" C2 s template <class Normal, class Void>
* j2 T. ]: }, r% e5 N7 R struct Type { typedef Void type; };
9 o) n! s6 y6 U8 w};1 }7 K f8 ] L" H1 S. _9 `
3 O( Y# ^1 \) t5 K: f3 C% n. o4 Rtemplate <typename T>
* Z7 |7 X( {% Y7 t: o" ^class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 @2 F* m: \( v{
5 ~, z i' N% Rpublic:
/ B. [6 z% Y. k) O0 S QFuture<T> start()
2 {; n, l% [6 T3 P" v9 L {
( @2 c# b) V5 Q/ j: @, ~7 H6 y this->setRunnable(this);
4 f7 N! u) c) w2 j3 E# C" H: U this->reportStarted();( W6 X( ~( @/ h2 j& |& m* z! F3 N6 a
QFuture<T> future = this->future();; L' [9 e1 \ r5 S% [/ {' h2 Q
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 L. T- @( z: j$ b$ a
return future;
! [' u( M; t, k+ B8 Z }7 k5 ?* P3 k3 o2 C5 b. }
9 u+ e% p3 J4 s" ~& ?5 O+ F: h void run() {}, c( ]" ?% X# |( _' [' X9 [
virtual void runFunctor() = 0;
@1 ~0 o2 B0 e. G. R! Q, G};6 Y, y, i4 Z3 K: z& b( O2 x
4 ^, t8 e7 i6 G( U7 w1 Q6 i0 e
template <typename T>9 ]2 G4 f' h: ~6 [1 }
class RunFunctionTask : public RunFunctionTaskBase<T>
6 X5 _5 ^8 R }' ^9 ]{9 c+ D) _+ }5 u! i
public:( g7 x0 R" x( ^0 Y4 s3 _7 L- ~7 D
void run()
! T2 f. W1 O) J1 r {+ a) ~7 K: N4 U4 S% P
if (this->isCanceled()) {
' B8 X% C4 r& g" ^0 K this->reportFinished(); M* x# Y1 A' ]- f) t" E0 @
return;2 J+ L7 f. L( z# e; u8 N# r
}1 o( Y* G# U) m3 V2 s+ x6 j
this->runFunctor();
% o* F0 V" |( O this->reportResult(result);! b( m& L: M$ T0 E
this->reportFinished();
: z+ f* n7 U: W2 a4 Y }; q0 B. N# N6 ^( s6 ^/ S. e
T result;8 j5 o+ i, G9 J- J n
};! v7 Z4 i7 k" ]2 @% u, F! `
3 V% D' t3 U) e: I9 f
template <>
* p; c/ l2 F! Y/ D2 Y0 H3 rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 U: T& n/ T' |+ }& }1 I; ?! v& ~{
, S T3 ^' M2 T3 {; w0 L. a& e# epublic:
, p( f) i; P4 `; a8 V" V8 ^# _+ ? void run()
' A) q: n1 H7 Z/ i& K+ h* P* _ {: h7 @. i# o. K
if (this->isCanceled()) {1 Q$ _! B; f3 B3 z; L
this->reportFinished();$ a% g* \7 B2 ?
return;+ N6 ]5 ?( p% U3 l. G
}3 p/ P6 S( U$ g' c3 F
this->runFunctor();2 v; \" Q( D: ~* C
this->reportFinished();
6 W$ E) l' Q. p+ }* q5 U }$ j: U2 z" _+ N$ U8 C
};& m$ k! W9 t. U$ b& v
0 m E. }0 Y9 V, j9 T" v5 x} //namespace QtConcurrent- F8 D# \7 {$ f2 ~( t4 n
4 t1 N! M- V* Z! z5 \9 I
#endif //qdoc: z3 H( _3 Y2 v; V ]
5 s( |. F+ E; |" C( t
QT_END_NAMESPACE
& Q) s4 m# Y. X4 lQT_END_HEADER0 V0 t6 C1 h* U+ f8 B6 R' P& t
; U* v1 f0 n: P2 X/ S; f
#endif // QT_NO_CONCURRENT" ?4 E J4 Q5 ^
, v6 }8 m7 `3 Y. ~/ n! L& [#endif
: p3 { d, ?+ m" Z5 d1 Z+ r
2 U( O& ?3 ]# u+ S2 ~ |
|