|
|
我对syslink进行交叉编译到arm,但是出现如下错误:5 F! h+ z# e0 X. 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') Y/ z8 G) s z* A) G
8 w! H7 l+ g4 z- @! G' G% g- s
这个头文件内容如下:
+ m( X n+ q7 ~+ @6 K" I' O#ifndef QTCONCURRENT_RUNBASE_H
# }; f% {* o0 Z& G f: b: T. F: T#define QTCONCURRENT_RUNBASE_H
R H' Y; W: i4 b5 w: r
/ f h+ n6 Z) u* a5 p/ s7 p2 j#include <QtCore/qglobal.h>
9 \* T2 B8 N3 P1 K, c. g, b- q: i- h* C8 I
#ifndef QT_NO_CONCURRENT0 b2 B% p8 H8 C2 w$ \
. w, A% g/ ]$ L2 I7 Z#include <QtCore/qfuture.h>
, F |9 X9 K: {$ v1 L#include <QtCore/qrunnable.h>
1 J O, T4 h _#include <QtCore/qthreadpool.h>- D5 O% D5 a1 {9 E9 o. s
) z4 q' |8 s( O* F6 }) i! U! m
QT_BEGIN_HEADER
/ _6 g* E+ n/ C# l4 l9 \QT_BEGIN_NAMESPACE
" E. \2 i7 c& U# z
' _, N6 f! \4 w1 \/ mQT_MODULE(Core)
, J( {& \2 X1 B1 r
6 v$ F& ?% p }4 i: y% ^#ifndef qdoc: `* C% s5 `4 R% N, R6 n) Z' M- N
# D3 O4 G% g1 Onamespace QtConcurrent {- Z- I6 F; }- S
! R6 P% y# z0 b( _) k5 C% l7 E. }: [; Z
template <typename T>9 A( _, L# W9 }0 c( L5 h" r
struct SelectSpecialization
# _( |4 P# D1 g{
% S8 W: v4 u/ V template <class Normal, class Void>
+ v" V6 Q: k0 C7 \7 X4 P struct Type { typedef Normal type; };
; b' A% [6 z0 D% O7 E};% h7 \5 r9 h/ I# }& q
2 U& N: D) B5 k9 C' w5 }template <>9 h6 e! U8 z4 I7 t
struct SelectSpecialization<void>. U; p2 y0 Y" g$ N1 F! v% s& \) x
{9 R+ F/ T! f5 M7 s* k% T7 `! G
template <class Normal, class Void>
; F3 M( \/ _, k$ V6 W" N( l1 {+ F struct Type { typedef Void type; };
$ n, q7 ?" @- Y0 N8 g2 Z3 Y) s/ X};
0 `+ J3 T0 J7 p/ S% ?# M: `, H, D: D. W
template <typename T>. j: z( U% U( u4 ], }4 o# Q
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 z7 V4 L! s, c9 m/ \{
9 d" s# J" l. m5 Ppublic:
- v9 V4 h/ r: ^5 a$ z/ k: U QFuture<T> start()
8 L v6 f; }7 G {
9 @+ E) r: A2 ?# Q% w this->setRunnable(this);
+ q$ R7 z. L# H" j% R this->reportStarted();
1 E. \' R" } H6 X" ` QFuture<T> future = this->future();
1 B0 |% C |5 D8 [- U9 ~$ @( D3 b QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);/ G+ }, K( N- X
return future;
8 |6 [2 `: s q4 w" [7 c; l3 ^ }
" r' ?# `6 {. E! q
4 _) S0 V8 D" v/ F$ u3 n* v void run() {}4 A7 F: |% W; M' {# ^
virtual void runFunctor() = 0;
4 Q- h1 K v6 R3 P: _6 _6 ?7 |};( |; W& K3 m% h% l; k" R4 U
, B0 l: O$ c* r! E: I9 Qtemplate <typename T>
. T6 a( N8 @& k; C/ S7 G% ^0 R% eclass RunFunctionTask : public RunFunctionTaskBase<T>
0 C2 s: L. S% U' K9 q: y/ s' M3 F{
! H( E. h' U U% ~. D" A1 Z8 r* F; ypublic:$ f. T" D- I! s: S B% f2 F
void run()
, }7 R6 }3 q9 L$ c* o: j {
, T: n+ }; N8 l% T* o0 F" l if (this->isCanceled()) {( M6 w; W% @2 g
this->reportFinished();
w5 ~ n" O( B& ]7 f0 ^ return;4 _: t2 o) ?7 v2 ]6 w% [' e1 D
}
- C g7 w6 g/ i! h this->runFunctor();
7 M9 Q: J4 g4 J; k5 ?6 r3 j1 ~ this->reportResult(result);
7 |8 i5 o3 b8 K/ d4 f9 K3 T( Z this->reportFinished();
4 C$ S8 w+ m+ `0 y9 g( K0 {* [ }/ H0 t. B9 f- l% q% K# I1 W( L
T result;
' {4 Z; p; Q" E6 }" C; _};
) Z& s3 o* w6 F! Z q; ^. ]* t0 Z: L% C6 ~, T; {; P
template <>& O: ~) ?8 ^# Z) ^9 p9 G
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 }& v; A; m% |2 [3 u{3 m; Y- B1 K0 i0 o! b5 K
public:7 H; S4 P6 a% G: z& U
void run()
4 f) K# ^* X8 P X& g {- Z2 [6 Y0 J2 z% f" L7 r* h- F1 `) L
if (this->isCanceled()) {& B3 y, B7 H. p( I$ \
this->reportFinished();
; X7 W3 f# g0 g return;
2 B- J( S3 n9 F }3 ?% w- V- A p) J5 s( M
this->runFunctor();& C7 [$ a1 S+ S0 s/ \, G4 ~
this->reportFinished();
& ^6 }" b/ G- @! Z( I) Y: Q }
0 y+ R5 c* j( {$ K+ A+ v};9 `! }0 q9 c* m8 Q, Q, \0 p' h
" q% Q4 U- m2 C" z+ f+ R* n( m- C9 q} //namespace QtConcurrent
1 f- k( |6 C& {: k( U8 W
5 P$ Y# O; Z3 u; o% z#endif //qdoc
, s: V" g2 t; M
9 g2 i( V; [4 @6 K9 iQT_END_NAMESPACE9 Q+ v, ]/ n. p! D( M7 b
QT_END_HEADER
+ V+ g: t" J0 g' X1 I6 D' K6 }; C/ Y" f4 j$ r* n
#endif // QT_NO_CONCURRENT
, x6 _0 v b( g0 @0 K& h
1 p$ V! ?1 Q6 W* L#endif
$ f# Q6 u3 S6 L) ^& }# N% B1 |& C) D& h% [) R( u
|
|