|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
3 y' B9 B/ \1 f/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 q- e1 H$ [! H& \2 ~: s# q" f4 }; S7 o1 \
这个头文件内容如下:/ Q& Z2 p0 ]" q0 M2 u
#ifndef QTCONCURRENT_RUNBASE_H7 d6 X1 a% w& B% E7 r
#define QTCONCURRENT_RUNBASE_H- }* z& _* F, w% R. @4 d' S
! B; V1 H0 N5 v1 w8 }#include <QtCore/qglobal.h>& y# ~3 i% K( T- ^
2 g% s) ]+ b' ?/ y& t8 g! q3 A; f
#ifndef QT_NO_CONCURRENT H# W8 E% u- X7 p1 b6 J
. q" k4 E' [) z6 o) Z
#include <QtCore/qfuture.h>
0 C+ K! [* N* E#include <QtCore/qrunnable.h>- w6 R7 h: j' I9 M8 V4 y. \
#include <QtCore/qthreadpool.h>
1 e& r2 I q$ G0 a
" v/ W! p5 c$ v$ E0 dQT_BEGIN_HEADER
8 X7 o! y% G, M+ L" }QT_BEGIN_NAMESPACE" Y8 v, x% n3 M# R. {% S# f! M5 o- S
, t- b5 w. d# f4 n/ G4 J |
QT_MODULE(Core)
. W5 g8 t/ ^# A8 D/ M1 v. G' c9 X" [0 I. G5 g
#ifndef qdoc( [. X7 [ z2 ~
* H) g$ I4 w$ ?
namespace QtConcurrent {3 I8 R$ @9 C! E: i( {. O
$ r2 w' m' u8 |+ Y+ k* q
template <typename T>
+ n, z! { `" jstruct SelectSpecialization
, W4 @% g- ~& W6 D0 C; E{ a- t; K# ~- o1 I& j
template <class Normal, class Void>
0 h1 c$ A6 [0 O2 ]% o struct Type { typedef Normal type; };" E5 \& Q7 V, f5 K7 a" M* v& d0 B& X
};
: z3 s0 }4 |4 F, \2 o. F% B5 b5 M! h# g# \2 q
template <>
' }. e) F2 G+ x2 X$ T8 Z6 H7 V6 wstruct SelectSpecialization<void>
! m3 ?( S6 l3 J{
. b9 Z& c9 l7 W- J template <class Normal, class Void>
* ^: g0 u! ^' Z1 u" E struct Type { typedef Void type; };
4 L6 ^5 V+ ?3 y7 y, w/ Z};/ k$ Z7 A+ ?, v7 h. Z+ _' B
# Y, ^8 k) _% b$ Q7 h3 n+ h" w/ Jtemplate <typename T>
- A; u$ x$ Y7 H9 [& c' s3 f: Zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% L- E4 T; K$ \) s$ e: W5 v. G{$ |! x2 T q$ {# h. Y) n+ ?. M
public:1 O3 ]; v. O3 |
QFuture<T> start()
# V# I+ F) j& N5 {) N) _7 u3 J {
/ n( K, \ @8 ~6 ~% c this->setRunnable(this);
P! A! m9 W# }5 k, V% q this->reportStarted();
0 X2 S: h$ r8 g, F$ o0 X QFuture<T> future = this->future();2 M: l k2 Y5 U; b: e5 |
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
+ M1 ~% _! m1 L6 C( T return future;
. X* E* K) z P. m+ p }
$ s: m& S3 x6 G* W' h) L) r9 u8 _( }( a8 R
void run() {}
# a* {! Y5 y' l9 `+ M! s virtual void runFunctor() = 0;
' d/ r2 ^! a7 @0 { ]" g8 x};
* V7 x. I0 z" j" O! b* y7 z+ g9 `- E, c9 s: G2 F5 w
template <typename T>
' }. z E! ~" P; Pclass RunFunctionTask : public RunFunctionTaskBase<T> Y1 C' {# r2 j
{# ` V1 S; D: {! n5 V& I9 c
public:
' M% A3 x. m g% | void run()
( b" m# G, z6 i# C% B {
' H* I# _7 [4 h- I9 Q8 S) v if (this->isCanceled()) {6 ]* J0 d, r1 k4 `5 S8 A3 `* d
this->reportFinished();& ]9 ^& j0 C: j9 x5 H k3 l9 s
return;
. ?' \7 ^+ }& c" ^% f5 Y }
6 ]% c. @6 Z5 D& g this->runFunctor(); D, q1 I r3 s& _1 T! }- f% H
this->reportResult(result);
; j% k. w; x9 n this->reportFinished();! b( B; n2 T% q/ W) _
}& A1 W2 F) }# o; y+ }+ }
T result;
+ s5 `4 U* ^5 s. R* h- M/ v};
- h$ m( H+ \; I9 o
3 K2 T' j6 |2 }template <>+ W5 K+ l$ u1 C M
class RunFunctionTask<void> : public RunFunctionTaskBase<void>& H0 g6 C3 Z7 o
{0 [, Y1 a$ H: G1 M: l
public:
2 U: b! e, d! T* `. i! y void run()( {0 y) f" g9 O- r. X( ?( T
{
2 x2 Q7 e& V0 T! B if (this->isCanceled()) {
, s4 a! v. [( h; O! }4 }$ f! a this->reportFinished();# F6 [% b; |; v
return;
" x% q( n( z0 R3 F0 f3 w0 N }
: ^! Z& ^8 i5 f2 h( l this->runFunctor();
9 G9 q0 o1 h+ u9 [9 f1 G' z8 H this->reportFinished();5 p. \4 _+ X! I' R$ G. ~
}
# _5 l: N- ]. |; w- H2 v};
4 {$ o( \1 @4 ]
+ {4 t# q: n% O} //namespace QtConcurrent
" j& }$ ?( \$ n7 o+ Z& V1 y
3 X1 `( d& K- V. L#endif //qdoc
$ j% }# H) C: T6 k. w F8 m; ?5 a
# v2 v$ J& x: _# ^QT_END_NAMESPACE
% O3 ^9 v; d& D0 X! v# f! EQT_END_HEADER
k/ B3 h$ d' k4 R% Q4 G
6 I G3 \+ s- @1 r: q: ~, {#endif // QT_NO_CONCURRENT; o/ L; ~: P& S$ p( m
/ m/ e1 q& K& F5 a; s#endif. f" N5 k9 `! R. J
% \' j: X* Z/ |7 {
|
|