|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
7 Z, c! _% R, E. 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'% h, b# Y* { H% X% K- N5 k( {
9 r3 `' d, U- k1 p- M
这个头文件内容如下:
k5 F1 k, y5 \#ifndef QTCONCURRENT_RUNBASE_H4 G/ S9 ]4 J7 V8 K$ \0 L
#define QTCONCURRENT_RUNBASE_H* Z3 d, w! S' f( k/ ~
- j' _0 e( g& d ?#include <QtCore/qglobal.h>
/ j" ~) P2 v9 [5 Z- W8 ^9 k0 ~4 w7 O5 H
#ifndef QT_NO_CONCURRENT
' J( p) ]! k. p% \+ m
* Q0 n- H& @8 b3 F0 C#include <QtCore/qfuture.h>) F' t4 `2 m1 ]+ H# y1 t
#include <QtCore/qrunnable.h>
& t4 D; h; R2 f) `# w#include <QtCore/qthreadpool.h>
* i! v1 z- ]) M# j7 U
) R% J' I$ d! i" }' ZQT_BEGIN_HEADER
1 z: o* o* F2 q/ V7 i, pQT_BEGIN_NAMESPACE' s( m( t5 H" ?" K& }. s
% r; }; J' b+ n0 B/ z. t, T' ]6 L
QT_MODULE(Core)
# |2 D! L" ?' O- M( E0 t8 L- Z
' T8 q5 W7 N% h# X8 f; N#ifndef qdoc) [% U9 D# ~: F8 y* p6 a
% C6 a6 Y, G% U a' lnamespace QtConcurrent {- o) Z' \- q7 [+ M6 a1 ^
0 E7 z+ y6 m4 G& t4 W& Q) b
template <typename T>
" ?: H6 T' k. e. ^2 z8 ^& d- Nstruct SelectSpecialization+ y9 ^( B8 S: Z% M
{) e e& t4 H% U. o+ d
template <class Normal, class Void>
9 T5 j9 G2 Y$ c3 p5 z, } struct Type { typedef Normal type; };
$ V$ l; r4 p: m' n( X% N. D9 N6 m J+ }};
$ O( [7 [9 [/ N8 J( S; j" Y
& \- u5 r: J" D" etemplate <>+ t) }: Z+ m3 M: n: A6 T/ F# L
struct SelectSpecialization<void>
2 j5 N4 X; U4 E3 W7 `: B{, }2 L: V7 e2 N0 O0 U
template <class Normal, class Void>/ X: H9 C) _) K1 {. J( l
struct Type { typedef Void type; };
2 k- S O$ L$ u( a" m};
n9 @/ P* H9 s5 j8 [6 |6 p% r4 o! M: W% E7 e
template <typename T>
0 a9 L8 H; _: g. Oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 i( Y1 f/ k5 N" @2 ?{
/ A" j( ], p- L: upublic:5 E& h2 {& A, u# Z, G! l
QFuture<T> start()+ D4 n( j; s) l- e) s3 z0 ?7 r$ s& E
{" _ t- p$ h1 e* N; J1 A8 t
this->setRunnable(this);
: W; q R5 e- p/ Y' j/ f2 i7 i: [ this->reportStarted();
& J4 q8 w r& b QFuture<T> future = this->future();+ x* l" R4 Q. q% y9 u8 Y
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
5 G6 \9 D* E: y- [9 a return future;: h6 o' p( H& r' ?
}$ c$ Y% k: d- v0 M; U( N6 C
8 b) G5 Y2 O& Q& b void run() {}
- g$ j; B' S8 j7 p0 M0 h virtual void runFunctor() = 0;! C8 Q) |& G. s1 t, k
};
3 I. y# a+ I7 H
# v- C" a L! c; Ktemplate <typename T>
; W# S+ R$ @ m0 x: \class RunFunctionTask : public RunFunctionTaskBase<T>
. L# J' V/ {! W* N{
& q! A) {! y7 B: v+ Fpublic:
9 Y0 o( t, i+ L: p/ k" B) }7 W/ t: G void run()& A6 `, x& P8 _, m' a' V
{6 @+ _2 U; y9 W
if (this->isCanceled()) {4 c/ j5 Z; b* i [* _6 n
this->reportFinished();
( q( ]- h& B, @/ {5 S, }& \- H7 h return;
: K( [. i, C/ F$ n" Y) D. C9 ? }3 {" _. q/ G: H
this->runFunctor();, T8 H: a/ c P
this->reportResult(result);' l6 c1 e& B9 u3 G
this->reportFinished();
! e& W: _* Y4 H }- L" R& g% I0 i5 N5 \$ n5 t) K: G
T result;
1 I7 N) l8 S. y; U};
+ w% f9 b# O2 e# u; V" H" L0 W
: k8 m4 O8 B: ^- }* h. k% ]# P. etemplate <>( S5 a0 l* I9 g9 V; w6 R( G7 M/ V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
1 Z3 V S; O; I$ Z& p1 y* N/ s{# [; G1 I5 Y5 e. Q7 L) \3 `9 {
public:
% O3 K( U7 J' i1 C void run()* F: \0 G7 o9 c$ M, |/ Z- B
{1 E/ f+ X6 p& w
if (this->isCanceled()) {4 s' D6 T2 C: K/ F0 c0 y
this->reportFinished();$ R9 f. p, S/ `2 \8 I' G2 e) t$ \
return;
6 b+ S+ b5 R* T6 O. ` }
! C% a% J4 |( Z0 m) N this->runFunctor();
; o4 l% \. }) E0 G5 | this->reportFinished();
6 a, y: {2 A/ P }
/ y0 p6 L0 x* t};
9 T, B+ l ]! n1 C) H0 }- M0 [% s- D
} //namespace QtConcurrent" \ N; w% l! ]7 D' K* a; e
$ \$ P. I# g. R: x N1 d
#endif //qdoc& u- ~& n# y* T+ Y, |. g4 o
+ B& @2 r4 P* x4 h7 AQT_END_NAMESPACE
1 \ d4 Q+ O7 y- `( B/ IQT_END_HEADER
& ?- Z& t' v/ H: s2 [( f9 V* K# c& `+ M$ W$ p
#endif // QT_NO_CONCURRENT* ~5 ^2 d; f$ d6 a+ T. `4 u: ]
3 P d8 \9 }7 W
#endif @. i$ \, G# i( h- {
) r; n# \$ Y3 E# C3 E
|
|