|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
2 w1 b7 q; r9 ~: a* S/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
{: V. d: W/ u8 K$ w# E, F
& G* o# m2 V. J3 ~. a( S# n- h- s3 J- J这个头文件内容如下:2 [" ]4 E* Z9 R8 a4 {) P$ j. B" w
#ifndef QTCONCURRENT_RUNBASE_H* J- _6 v2 z% n' R
#define QTCONCURRENT_RUNBASE_H& r% g; P: E& X- p- o0 s. q& V
6 P4 Y2 L& \( ^; }) W9 ~0 Y3 g/ M
#include <QtCore/qglobal.h>+ k$ v0 O; L9 V' f% b/ v
$ W m, `' v! M) a W#ifndef QT_NO_CONCURRENT6 P, ^* x1 V$ h' s2 f
& c, I! e# u% A' |#include <QtCore/qfuture.h>
, m3 N/ Q( q* e/ g, m# W#include <QtCore/qrunnable.h>
( p/ ]2 ~0 e3 u1 q#include <QtCore/qthreadpool.h>
8 d5 [! |! P$ c) @1 K) o& |' u0 R1 X+ l5 C; L# N% k
QT_BEGIN_HEADER
6 |8 L5 R8 y5 F0 Z5 FQT_BEGIN_NAMESPACE1 r1 ~0 j* C7 S. G+ e* X* O7 T
- M Y9 }3 q6 i. k1 Z9 n& VQT_MODULE(Core)
& f4 M5 f1 Q; U
. ]$ t+ e3 Y" ?5 j#ifndef qdoc4 F# \ K; f& j2 }/ G
" U, i% e* @/ P! G' C! \6 [
namespace QtConcurrent {
0 `9 \- x" q9 A$ S' m# E9 E3 [. z5 d Y7 x5 s% v1 n% N" k3 F
template <typename T>) G9 ?3 Y' V7 m' [
struct SelectSpecialization' M% @- V$ c- l5 C7 j8 C9 ~
{. R' a/ \2 o! f+ P
template <class Normal, class Void>
( o+ g* y5 `- Y5 | struct Type { typedef Normal type; };
2 }2 V z' q" i3 I5 a: T# x$ l};8 B' Q+ M5 C0 V1 @" j
: L% _5 W- K0 G2 i1 Y' t* ` dtemplate <>
6 n( P4 Y# ^4 C+ @) C+ G3 cstruct SelectSpecialization<void>
# W q Q/ T+ N) p3 X6 d{
3 z; K2 N$ M: p template <class Normal, class Void> @4 e! o, o' A/ [% M
struct Type { typedef Void type; };& t4 E; ?6 [- k3 I
};
" v3 U' }+ P( Z- X( z" [: C5 w( k3 K
template <typename T>
! q2 O7 v! v+ G, U. r- d! s; r# i: oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. b0 X9 C) E; ~5 J# ]2 V{( h# V& \/ u+ e$ Z& K; q+ ^5 M* s0 R
public:; A2 z+ C2 j$ f- H( {1 W
QFuture<T> start()
% B, H+ i4 t% Q: z' F/ o {
3 T; L- @/ a4 W$ h# D5 [& v7 l this->setRunnable(this);/ G9 M* x3 Q* l
this->reportStarted();. j' j Y2 M Z
QFuture<T> future = this->future();' e0 E" C5 L; G0 ~
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" x" V3 s, w' P/ n+ E @9 k# C6 R- J
return future;) s% {' z2 D+ D
}
' |" ~$ c5 ]- @; H3 D" g# r; r* \/ n% l/ l. b
void run() {}' ?7 f8 P) v, y ?; T c
virtual void runFunctor() = 0;6 S' P. @/ u1 K5 s% M2 \0 J
};
0 e! b/ A" S s3 K4 H: Y5 u8 w. g. @* T
template <typename T>
k0 ]! }9 l4 Z! {class RunFunctionTask : public RunFunctionTaskBase<T>" q0 {( h; {( ~+ E7 |
{
: \! N) e8 R* i$ ^7 ppublic:
0 z8 p0 z0 }5 X% v/ s void run()9 i8 B+ K% R) V) O* X) p
{
$ {4 Q' g% x& K3 K) h$ h* @1 e6 z if (this->isCanceled()) {+ e1 u, ]9 R% w
this->reportFinished();9 }, j% s3 M* H. }7 S9 E9 M7 X
return;( f# t! S/ K; g/ p5 k' U- Q
}
6 W0 h5 U7 e* O4 c; \% g3 W this->runFunctor();& m4 F; y* } A0 i* p2 R
this->reportResult(result);: k7 R. D) B# I4 O1 Y5 b: A. v
this->reportFinished();2 F6 ]8 C' `) @' I3 d
}
1 x5 F. t6 ]/ k E T result;# u& {! O% A; M7 S4 N
};2 J, i5 x m! R5 N
! q9 @( m0 { R' X7 ]% f2 ktemplate <>7 V) J- C6 m# }$ K$ n
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
! E3 U7 v$ Z6 J/ O* e: r+ k{
# Z& P" i2 a2 s: ^$ @public:
; p$ o1 I1 |5 `5 G: h, K* z$ { void run()
. j* F9 x; ~% q2 m" j( U. U {
7 J/ B1 L! g! y# r2 ? if (this->isCanceled()) {
( W% }- R+ v% w2 ~ this->reportFinished();
+ u. |, a/ p. }+ V return;
# t9 c8 x4 H; m' u* n& x" E% ] }
5 D- H/ s! G6 \ this->runFunctor(); p }" y3 u; r1 c2 L$ |
this->reportFinished();% z$ o/ ^! Z o
}7 `3 Q1 B% p7 ^8 h* \
};
% z+ `$ h, ^: o' Q) h, f! r( d5 o
# A8 G' b; L; G4 m6 W. V) H$ ~' v} //namespace QtConcurrent; W$ y. i. v6 J1 Z
' c+ o- f5 }4 o' f5 B% [$ B) x
#endif //qdoc0 Z' x% r9 G, Q; ] Y3 H
) q& P1 ^& n$ C! v! J" ZQT_END_NAMESPACE5 f" V8 {: m Z/ Q# C) h. r
QT_END_HEADER! k/ W, Y7 U2 }5 ]
! y6 d. j3 h3 @" e( ?" V4 R% f# s6 y8 B
#endif // QT_NO_CONCURRENT0 c D# W( o( u% m
1 h! D0 P1 a5 ?1 k#endif
" u* E9 |* h4 J. s1 p% ~: e7 h: l: t# a1 T5 L
|
|