|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
% `* h9 U- `( i/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'4 E+ G& W- x6 v7 d: G" ?
% |( q+ t' F# Q这个头文件内容如下:7 D% r' a$ r" _% ^7 t' a! Z
#ifndef QTCONCURRENT_RUNBASE_H* ?; p: S% O1 Y9 v4 X5 N
#define QTCONCURRENT_RUNBASE_H! b. ]5 O$ ?8 F( y+ z6 L" e6 `
) g/ H6 w. O. t- O6 Z#include <QtCore/qglobal.h>/ d, L' {( F# ?- ]+ N' F
! v! f5 }0 ~* W#ifndef QT_NO_CONCURRENT
0 d9 ^1 m) M2 ^* n
. `8 x) W( t5 r* Q! a W#include <QtCore/qfuture.h>
# D2 ^, ^" Z) i$ Z/ m#include <QtCore/qrunnable.h>
( M% x2 c) W! w: R0 C#include <QtCore/qthreadpool.h>( i% ~ Q2 @9 Y0 c# u
6 x! D; {+ E; i( v" aQT_BEGIN_HEADER
" f2 _* U7 f( I% L: s, e; [3 d2 N, wQT_BEGIN_NAMESPACE. f" L6 n: a+ L. E; Q/ `
9 ]- k( y5 r4 j
QT_MODULE(Core)
- k9 H, ~5 w0 z$ K+ \) @- q! `: [ W# p0 {
#ifndef qdoc
) {8 @8 y1 f' \/ `
5 q! F$ U0 ?% Z, r9 F+ Hnamespace QtConcurrent {
K9 }/ L$ w: x7 C3 ?6 |2 Q- z5 `; K( E# @( d6 M7 {5 E
template <typename T>
! q' x4 ]! S0 u; sstruct SelectSpecialization4 f9 B& _4 y6 Y! \
{# y9 P e$ w5 ?0 m0 C% I
template <class Normal, class Void>' C% E; z5 z8 C( P
struct Type { typedef Normal type; };
" N: M4 G/ l# z6 r2 D};! a/ B5 t+ V' S6 a. f( {" @# O: {
' w. ?( q% |5 ?
template <>
0 } C x& i0 P$ r# f6 tstruct SelectSpecialization<void>7 I8 j- Y; v3 a3 i1 }
{
0 w5 v% K0 g' i, |- j z% P template <class Normal, class Void>3 P- z6 R: s8 Q1 F* B1 |! w
struct Type { typedef Void type; };4 P! w9 w" ]' p2 k$ d4 G; k
};( d8 v5 ~, T! [6 i+ E
( O/ X% l, m" @) k6 x' S7 j1 Qtemplate <typename T>
" N. J$ H, t& k; s J8 X: Mclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. p$ @: A) y6 f, S8 e' j- s; F9 u
{
. {4 W, P4 b3 J! p, m9 B3 O! t8 I; `public:$ j# B+ p, F$ D# V
QFuture<T> start()
. b6 u3 r1 t- y3 Y {, P( r% r t% v- K/ Q
this->setRunnable(this);6 ?! Z" F( X. \5 ?* m2 {; l0 N# H& R
this->reportStarted();+ O0 k6 q/ Q! ~2 F, L
QFuture<T> future = this->future();
; b$ {: X. a4 I+ `- v QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);% J. ?9 j z% z* X w, M
return future;1 }7 f) v: o2 X- _ ^0 w
}% B* K' d7 x1 {& Y
. F' H! W( i- P6 ^
void run() {}
' l. g8 J: I$ {2 C3 v7 t4 q virtual void runFunctor() = 0;
8 J9 m) I* S. l- D) c};
) x2 q3 Z4 t5 p" P: q2 K7 F2 e2 m# F; u7 Z. o# c% o
template <typename T>
+ N0 g! _$ T% D! s+ `. Hclass RunFunctionTask : public RunFunctionTaskBase<T>! ]1 M- b M) w% m) |+ j
{ j+ a6 k* T! t6 M7 G: Y2 w
public:
" j: W+ S9 @% J0 q- i void run(): n9 T/ R8 l$ W6 b4 s( X3 r
{
) s3 @5 t7 V, @' s& x, m7 A0 _ if (this->isCanceled()) {
0 {: r6 e) A2 M2 M; _7 U/ Z# x this->reportFinished();1 S/ D+ @" ?. t3 m6 T3 M
return;' Y) `- W* B5 K; Q% t6 T* L- m: b
}
+ w, a3 X) j4 x+ j, w this->runFunctor();
* ]$ A- C* h1 V# c1 h* d( H this->reportResult(result);
+ d/ x* i8 Y# Z3 {$ S2 J/ P this->reportFinished();
9 B2 z* B. K! B6 k/ h. O. K }9 B0 \; B7 Y! C" {
T result;
' \' B1 A9 A+ f) j- m3 Q- u};( A7 T9 `: f" a/ u
& v1 z% r4 D( z: ?1 n
template <>
' k7 _! [3 C7 aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>+ q% s8 x/ q5 O- O; r$ X$ o! y) [
{% {+ H! w( r% P9 F7 k! Q
public:
2 Q. ~/ ^; x6 L0 z4 z% I void run(), X8 W5 a+ b# h4 x' G1 i
{, k& e* r, x& u4 f" w
if (this->isCanceled()) {# U2 P, q7 \' E& v
this->reportFinished();+ v5 f7 e7 x$ j
return;$ Z0 Z1 l; }1 {4 Q5 U
}
+ c d. `0 k5 c$ s" n this->runFunctor();
4 I% R( i) B, f6 P4 `- Q6 O this->reportFinished();; Q7 A2 u; f8 v: j
}
9 }0 @* w; T2 O5 l- M};0 _: q- Y0 N) T0 n
# G( N7 Q. m. N- O- Z/ k. V} //namespace QtConcurrent
; h) \: ~: r, q- E! H5 x9 U+ [9 Y; c. ]' c5 d! e9 ~0 _ D: L
#endif //qdoc
6 s V. i" ?! c' V* i4 h& ]6 x/ {! Y0 }
QT_END_NAMESPACE
3 {+ Q i' b2 B' eQT_END_HEADER+ q `/ H8 I E; M, `; K5 H
) V. d# X R7 ~9 d
#endif // QT_NO_CONCURRENT; [7 M$ E9 X+ B+ w2 V; j; I
. z9 ~! Q) r0 q6 @) A
#endif
$ f6 I* _' Q6 p a( e# Z* n% s0 ?
& }9 }" U0 m0 |% n' C |
|