|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
9 v* [; r% X7 L/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% A, j# J4 q+ N0 Z
0 T: t0 ]$ }3 f4 o0 ?1 U
这个头文件内容如下:
: J4 d/ e1 z3 c# n. O' t7 i' e#ifndef QTCONCURRENT_RUNBASE_H' i5 P' o0 v& K" I6 R
#define QTCONCURRENT_RUNBASE_H" U% w; N7 ?* V/ p# j$ q
* {( `, f- A( ?4 Q9 ^" I
#include <QtCore/qglobal.h>7 j/ D- Z1 [% S: y/ c
* @+ n- N9 {% Q# F#ifndef QT_NO_CONCURRENT! Z7 j, o( Z% w" P* \
& W& J$ ]3 B" e* p
#include <QtCore/qfuture.h>+ I' X# d/ F6 l) g+ r7 W1 j
#include <QtCore/qrunnable.h>
# N0 R' y$ q3 |#include <QtCore/qthreadpool.h>
$ C1 K. v$ ]$ w) d9 ?+ ~# l; ^% n3 S# v
QT_BEGIN_HEADER
, u8 C% t8 z+ K' @% w) T& Y8 U2 hQT_BEGIN_NAMESPACE1 R; i2 ^4 M, C. \. n
. W5 z" |6 [$ h* ~$ A3 C
QT_MODULE(Core)
' N$ Y! K, C5 B/ ~+ x* N! W- i1 q( w& `3 q% @: {+ ~7 ^0 U
#ifndef qdoc! N3 m3 p* I* q, S+ a/ |
8 v3 b) s; q) p8 Gnamespace QtConcurrent {
& ]1 M9 A% ?; {7 R# W0 {" C0 p
/ S! D) M+ H- D- ?/ Z$ b& u; f; Y itemplate <typename T>6 P1 p7 P9 q* q8 K6 E& O4 w1 ~
struct SelectSpecialization L9 O6 E9 \) w5 |' u& z7 g
{; Q7 \' ]: q1 d% C
template <class Normal, class Void>. ?8 g) M: K1 U& j
struct Type { typedef Normal type; };
" v7 C- P5 [, J( k" B' S4 v, ?6 t7 f};
1 C$ }' S9 r9 C: Y* l6 q K% m r7 ?+ A( w4 Z Z; f& S( |
template <>
D' m0 @4 D% B8 J# r8 s5 @* astruct SelectSpecialization<void>( j4 H, e$ O. A" ~) R9 m! ]) o
{
( r; ~, _. ~. p2 W3 t" Z4 l template <class Normal, class Void>
2 d- s& ^2 V, P4 L! k' K struct Type { typedef Void type; };- ~+ @/ u; W z( s
};
, l# o4 x( v' _9 h
$ I' i* ~8 _9 Q* B3 c+ y5 Utemplate <typename T>
8 L( N' T+ @" @9 @8 D% b/ Iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable5 B# ~) \7 D; S3 d- q3 I8 I( H
{
- m' b) d8 g; o1 r& Q: X. V/ Spublic:6 |0 G) W3 k% q* a9 P# o2 {6 ?
QFuture<T> start()
7 w$ T& T0 z( k {1 D, J3 F% \0 }8 A* i9 ]
this->setRunnable(this);
- W$ Z' D. b% [; v7 L this->reportStarted();8 T1 e8 h2 s9 n+ S! P: x
QFuture<T> future = this->future();5 O& `3 W. E& o; G: \
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
4 W s$ m# \- O8 k# R1 F return future;
% s& N7 W4 A2 I3 _* S% R1 } }
- U' z/ \$ c3 T; B5 W) q
' ~2 B) j' Q0 Q void run() {}4 U8 |3 I* X" g, Y# Q! O7 f+ ^- @
virtual void runFunctor() = 0;5 k* F9 ]: D! K1 ^. j, ?
};
( M' l4 e9 J( E' g y' ^0 M G7 B2 Y' T, {" o* u& E+ v% h
template <typename T>3 C; \9 T: w( t6 T; R0 N
class RunFunctionTask : public RunFunctionTaskBase<T>; R+ J# C1 R" f* P; k8 x C
{
4 t: q. {( L9 z, J3 O. B$ V8 Ipublic:1 P. o- Z6 Z) d0 D5 M4 D: _
void run()
4 n& X7 K* q& q8 h! g& ^ {
3 D1 P. H3 y2 V' |* E1 S* q if (this->isCanceled()) {& [& @0 K; f3 O; z" T
this->reportFinished();# D! ~( o9 f0 V" N* Q- }$ S
return;. T+ A/ k/ k5 U3 G5 T* u5 A: v/ m6 {
}
' T) b. D) P9 _: [3 ^ this->runFunctor();
% q" g1 y3 R$ t; e: V( U% ^4 k this->reportResult(result);
4 ?+ P5 t: t7 R/ N: {$ j this->reportFinished();: w2 d* n9 \- {5 K* \
}# w f% v# e1 k( b* C3 Q5 R# h
T result;- {. u# d/ n- m4 a1 m+ s
};6 y# @% r: D) E$ t
1 s0 T+ L5 E, A% y$ s
template <>4 C/ a1 }, W1 _4 o, ]3 \
class RunFunctionTask<void> : public RunFunctionTaskBase<void>) B" c: r* {2 I6 f
{2 g# y, D$ y2 G4 n$ E; }
public:
' O5 V+ _! F" _$ [& j6 |* j( L void run()8 Q5 Z. H1 q/ d
{
. N u% X( I* `! t9 X! q if (this->isCanceled()) {
$ C r4 ? L; s" f: H" ^ this->reportFinished();1 L- _ w9 D* i7 f
return;" v- b1 ^+ x X: Q. y
}) u! M1 u+ d- B' c8 @
this->runFunctor();) I. o0 f9 p7 p1 {
this->reportFinished();
M: i0 ^. o% M K }
+ w/ z* s* A5 Y8 z+ A; N}; J& b, K; g; @$ f: a- L
: F! j# T# Z& }/ r
} //namespace QtConcurrent; b0 R1 N3 I+ K2 ~
8 h0 a: N( S/ Z; r#endif //qdoc" o* w" O6 W" n ?3 ?
2 | \% h- U# t8 q0 tQT_END_NAMESPACE
# ~' t9 v; ? p2 ^- dQT_END_HEADER
4 t& b0 }( r2 u
8 y" Q% _2 q4 C8 f* K#endif // QT_NO_CONCURRENT% l1 f! e" c2 f: Z# n: T! x
3 e: E. |* w7 }1 O O; [( N7 J#endif: F! f. X3 u# f0 s' g2 w9 D/ u
* k+ A6 B- s g3 M3 ^+ R4 j
|
|