|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( ^, p- x- f; ?5 |% u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
$ u- z+ X% J) P# p0 L! U' c3 s/ U( u2 K2 Q) \: _
这个头文件内容如下:
$ }5 o* g0 y2 f* K0 M; M: v#ifndef QTCONCURRENT_RUNBASE_H0 d( u7 L7 B. @% } c+ u) _+ p- e
#define QTCONCURRENT_RUNBASE_H( R& a& i: x' f! w6 I1 N" t
3 W6 t l2 P' E
#include <QtCore/qglobal.h>
9 z$ V2 B, o* ]* i# L, L$ u( _* T6 e" J# C3 j# S! f* c
#ifndef QT_NO_CONCURRENT
0 x! E' x. J) z4 W1 ?% _! r( _! K* v/ y: B2 Q
#include <QtCore/qfuture.h>
9 e6 M) r) ?8 N0 [#include <QtCore/qrunnable.h>
% I: H" `. r: l4 B p: l* l5 \' J#include <QtCore/qthreadpool.h>
* W/ z5 g* |, ~/ @4 j/ [0 T K% U' d9 ]' {% d
QT_BEGIN_HEADER
0 K; U0 R* v5 ~& U+ nQT_BEGIN_NAMESPACE. n$ k+ L: W- U1 _: B
; U* N1 H" i1 V' S+ U! }6 M* q& o! t
QT_MODULE(Core)4 b: M3 {1 ?. h& m$ O( a7 ^; |% n
0 Z6 ?( `* E/ ?* y: f# U6 `; P' Y#ifndef qdoc
3 {/ g$ k4 T& H' x2 j
# Z0 U7 h; {% n/ m: O9 Pnamespace QtConcurrent {, h8 l+ ~' {- y2 i
3 B9 j* p/ V- I/ E4 I. i! R
template <typename T>% T& r7 T- ]; q3 P' o0 f G
struct SelectSpecialization
' U" p% f4 X9 G/ [2 ^* Q# ^{" Z' `4 k, t' }% N b$ j
template <class Normal, class Void>
7 n& u0 {1 s: W, p3 Y, a- y# q struct Type { typedef Normal type; };( _3 ?+ I0 j u6 a4 }/ B
};
! U* l1 `0 M7 M. c
9 Y( I: K' u* Otemplate <>
- y" K2 e% i1 [( |: ^+ dstruct SelectSpecialization<void> k; Q/ p' z1 I5 d
{
3 s! Q8 t e1 ^* {* ]' d template <class Normal, class Void>
) M) \, u+ F; }( E! k3 e4 L: O struct Type { typedef Void type; };
5 C6 p3 e) I" T% w* V/ P- p5 K};
/ {8 \: m0 A7 ^1 B3 h7 D) o3 Y w6 W3 g
template <typename T>
- h" Z) [- C" I/ yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable% e: q3 C/ Z% x. A! ~% o
{
( M; q! W+ d) Cpublic:6 ~6 O7 q# q' h6 ^
QFuture<T> start()
3 b2 B# m3 o# `( o {& d/ i$ `! u% N% O) W. g) Z
this->setRunnable(this);
; v: }4 v' M G+ o this->reportStarted();3 d K; o/ u5 N7 Q8 P/ T: x- ~8 U
QFuture<T> future = this->future();
% e1 f% k7 N( f QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 y @& D# A% ^, [9 ~. d* u$ E return future;$ K. M' a! z @. n8 X! W' H+ a3 s7 f
}( m, ]% Q, s3 d o9 u1 r
4 k |& z: `8 h: i
void run() {}
" y! C6 | {' x9 Y9 s virtual void runFunctor() = 0;6 u( f5 M% V- {2 ` D3 a
};4 g O: l. M* p/ w/ V5 h& L4 ?
$ D3 ?! q) [ i- s2 p
template <typename T>
, D) H, l* I7 P# tclass RunFunctionTask : public RunFunctionTaskBase<T>9 N' K4 t+ o' g, v2 T8 l& `" o. M9 j
{
, ]3 ^( z* A2 i) Tpublic:, z, d! P" F4 k$ a9 F5 r E( c6 }
void run()
* ?( }! L* p/ f! Y. h {" [1 W& A7 R4 \' u; c$ x ~$ A" J6 X
if (this->isCanceled()) {* q" ~( \. ]9 J) v
this->reportFinished();; R% w9 b- R8 _: B, t" G
return;0 Z! C% A0 E4 {! q
}: ~9 W; o- z! _! r) l& x
this->runFunctor();
2 o5 m% A. F' r _ this->reportResult(result);7 y+ e9 {. x6 S/ i. b/ L
this->reportFinished();
& Q7 p8 I6 N9 F/ ~: Y6 k5 b }
M# h; Q) X- Z2 ]" I' r T result;; N% k) ?9 Z) E
};
}) }1 ]1 H+ }) Z! D
" R& v$ M2 @# U. p2 Xtemplate <>% e! W. B& p: D. x/ c( r
class RunFunctionTask<void> : public RunFunctionTaskBase<void>2 f5 n9 l1 U( s1 {
{
2 P# w, m% [/ K Vpublic:% n0 a4 P5 Q0 D6 O G- }8 `
void run()
* w2 z4 ^8 S9 l0 {' I {
. E' |8 p) H) n5 D if (this->isCanceled()) {
" E. E8 R* L& ~! v this->reportFinished();
2 _- ~( `( P% F1 v return;
- m1 x9 P' f) O; P- p5 G: g }% q' v# J' c+ p6 l/ s
this->runFunctor();
+ K, b0 d" g9 _# z- S this->reportFinished();
* ^9 t) ]% v: W8 @ }
- ]' V* L+ k$ m. o1 o* R' W9 N! _( x4 U* I};
1 ?! `. `3 L% g9 h, l* @/ p% D" D, _ e E1 h
} //namespace QtConcurrent
( ~0 U+ H" L5 o
+ O% U# R- a+ M8 I#endif //qdoc. z& K0 T6 T8 P+ n$ I
7 \0 k+ `; f5 Z) E- K6 v, \# U2 u# dQT_END_NAMESPACE2 M: Q: N. U- y
QT_END_HEADER
9 U0 N R" H9 f; h$ p
9 q: W8 Y9 ?, j# ]: C9 x9 X- ?#endif // QT_NO_CONCURRENT9 ~- p5 v) P4 _; G( O* Z
& D P7 x1 C8 f' A h" f
#endif
" \7 T7 c: @. ]- I
( B& P9 H/ N" d3 @% p# U |
|