|
|
我对syslink进行交叉编译到arm,但是出现如下错误:) }. q) ]2 J3 @$ S/ m
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
; M# U7 z' M0 l3 S" {" z' A/ ` u$ |) W
这个头文件内容如下:
/ s, m2 T1 s9 \0 v. F( H#ifndef QTCONCURRENT_RUNBASE_H
1 e$ r6 R! |# Y1 {0 y#define QTCONCURRENT_RUNBASE_H
u; z5 L* F$ D: X# p3 S/ y" Q3 N+ }- S
#include <QtCore/qglobal.h>
; L0 c+ V% q+ v
6 C0 q8 i& d) G& d#ifndef QT_NO_CONCURRENT
" \# V: x' R/ Q0 j0 v7 }5 i- ?1 l, [) @7 x6 n7 d
#include <QtCore/qfuture.h>5 f. }2 h. y0 P# k: a+ T
#include <QtCore/qrunnable.h>
" ~/ \/ e' T6 l2 S#include <QtCore/qthreadpool.h>3 ~$ g K4 k8 L
. X/ n* |- P$ H% \8 C
QT_BEGIN_HEADER
4 H! s8 [9 n7 [4 l5 q6 [QT_BEGIN_NAMESPACE
' `5 q! A1 l- j
6 j' f) U0 @0 kQT_MODULE(Core)- w% k1 F9 g4 }, i
' |+ [' _# t$ S" `
#ifndef qdoc
! g7 h8 Q6 h# Q# r5 t% c1 X) L: E
% x, M4 {! n" t4 L3 Fnamespace QtConcurrent {
- q: ^6 U! h# ]/ ]: ^
- H |6 A! j" o7 t# H8 O4 Ftemplate <typename T>
1 C% `% {0 ?" h( \8 v) G1 V: ]struct SelectSpecialization$ v) @: z- D M6 |8 h
{0 K; }7 a' \+ K2 s
template <class Normal, class Void>/ y Y, [5 Q9 U& y# m; p
struct Type { typedef Normal type; };
0 `! N4 W+ ~ L6 _. _* I, U2 j};" s; d8 U$ y6 Y- E
' p: U+ [" `$ K& Atemplate <>4 N! o8 n# v, a9 O- s- ~
struct SelectSpecialization<void>
$ o& O6 U+ }1 ? ^{6 p% i3 X) i$ d; h! `) ^) X
template <class Normal, class Void>
+ n: \ d* D8 `! D: j struct Type { typedef Void type; };4 a3 S5 H2 ^+ v6 }: s
}; B6 ?) }$ y5 l& t3 |
3 q9 I6 d, d( y7 W) B0 ]- v2 R
template <typename T>! ?8 p1 Y" p# u
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 O0 f4 e2 |. r
{
4 Q: T/ Z7 g2 M" T$ L: b! rpublic:
) H0 k3 E9 G: A QFuture<T> start()# r! u% q$ n/ H4 b$ {
{
$ \/ J/ |. i. v4 |( y; _% ^/ B! h this->setRunnable(this);
) S" t% ?& P- D$ c: x" J this->reportStarted();
0 Y( L5 W$ ^6 r: _% ^3 }5 R QFuture<T> future = this->future();6 B4 y8 X' K# T) J' ^) D( L( p
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& F) A( Q6 }- ^( O
return future;
% ]3 }. W8 z) S0 p/ G3 } }
# M4 m7 Q; C, m7 a& U" I
" r3 Z0 X8 B+ o5 K2 Z5 c7 J void run() {}+ L4 Z9 B# }9 p- \0 Y O
virtual void runFunctor() = 0;- k0 E: P3 o0 D
};, G+ x% y- d$ d
& A& G3 |% }/ |! H! j: N0 [template <typename T>4 o* c, K2 A" }1 a2 d! p" Q+ M
class RunFunctionTask : public RunFunctionTaskBase<T>
7 y7 z( h0 B1 i2 w! ?: @; \{
0 C' c E6 J+ D [4 K. vpublic:0 n7 Q' E" i) F' o2 N1 V
void run() ]1 |# \$ Z, F: v6 u0 M, A
{5 e8 |0 ]% t8 b' B0 ^) d
if (this->isCanceled()) {
; c" W, v6 X5 u/ a7 L- S this->reportFinished();; H2 j' X4 A# [; U7 R+ X8 [
return;' H9 P& S2 [1 M; O2 I8 i
}
& e- e* E5 h; k6 |7 o' u this->runFunctor();) a1 Q' M8 @1 D0 m
this->reportResult(result); s, Z# M$ C- C" k
this->reportFinished();
* L' H# X7 `) Q% P6 C; q3 x }
7 ^7 y# J. P$ m3 k" `- e# G T result;0 j! A I0 H4 Q& f' S6 U8 ?
};. |. h6 x" V. e/ C2 T$ x
, ^/ q* L9 ` L* h/ v- ctemplate <>
% @( h J, i" r% f* V! x( @2 Fclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
! K p9 [) j6 P: @7 f{
; J9 H6 N) G' j8 }public:2 t$ `; J! q6 f, w
void run()! N5 @- t% c. P# S1 P7 b
{- ?9 i9 t8 ~9 W0 y& T& ]6 b
if (this->isCanceled()) {7 a$ w& s! ?0 D
this->reportFinished();6 w4 M" e! y3 T% m7 r8 P/ D
return;
: O$ K% [7 |; x7 s2 B" W }
( N. T+ t. f4 r this->runFunctor();
4 l' T5 Q3 d" }5 | this->reportFinished();
7 P5 n! q4 t0 k; v }$ q; g$ D% L/ q' r0 \
};( T! @% j" x+ K; q. N/ s
0 r- l2 y4 [" d3 E} //namespace QtConcurrent
) D2 s3 b6 W. k
) r. [' b9 |6 J7 v2 ?9 t& Z#endif //qdoc
M8 S" K% n- X) x. c
8 \5 Q3 E4 G) n. k2 FQT_END_NAMESPACE
! o2 }" o. t7 vQT_END_HEADER0 m* u' p7 H$ R4 c. F2 X( a4 q
9 k @: L* W! ~7 I* }3 j6 F5 q#endif // QT_NO_CONCURRENT
* E& x7 k0 ~8 j# `" ~) A5 e( U* Q+ t w/ @+ v" i, u
#endif! M# g. [$ k% Z: S7 e: E
9 R# p5 m# a( L8 F |
|