|
我对syslink进行交叉编译到arm,但是出现如下错误:
# I5 R/ ~) e9 Z4 ? x/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'3 q% H+ y [% e: {* Q4 ?8 l
0 D6 M; }/ L6 K2 M' v) J
这个头文件内容如下:& T2 P% I* k: |, C: H5 ^( Y
#ifndef QTCONCURRENT_RUNBASE_H. a0 C0 P; u8 e/ R8 ~+ x
#define QTCONCURRENT_RUNBASE_H
; ?9 ?5 A! M; b! ^. ?2 h! t( |
5 p8 z. |# |( c; {: ~ Z8 V#include <QtCore/qglobal.h>) ]- U5 Q L3 i9 `
8 J/ C: g' ~3 s
#ifndef QT_NO_CONCURRENT$ X* f& D: t, K/ D7 o
4 M% v% g& o! V#include <QtCore/qfuture.h>
! P9 W& p0 X5 b3 A7 ~# Q#include <QtCore/qrunnable.h>
. ^* _ P% h% v) ]' {#include <QtCore/qthreadpool.h>' V. c0 } b0 g- b0 g
+ k7 O2 y! \2 n9 j4 e/ b/ ~QT_BEGIN_HEADER
6 D9 b6 O! M% f" G4 z, s8 Y5 w& lQT_BEGIN_NAMESPACE
2 ^* a& l) u' K/ e
, p6 n! n9 {7 S( Y6 N) `4 ^QT_MODULE(Core)
% u5 \* e4 V+ |+ Z$ N2 L
' S) B. m. ^$ e' ~ b$ ]: p( \+ O" ?, g#ifndef qdoc# s0 o* m2 i/ N$ _
! c5 L+ T* j0 l fnamespace QtConcurrent {
$ p2 ^7 j. {% u& L1 n
" s& H( A* G+ I' i! Q; w# Jtemplate <typename T>
2 `" s* L; k: c$ Z0 bstruct SelectSpecialization
# B( V: [9 d/ V ?! I. b% s. k% ^{
" Y; n3 U F; C2 w v5 L template <class Normal, class Void>
4 t& b9 R" X k& A9 _5 ~0 R1 y struct Type { typedef Normal type; };6 J( O# x+ {6 A5 r( D
};3 O' p/ Q% u) q
" Q$ E$ t) m/ T# ?" ^ s4 A) c4 `; utemplate <># F4 j0 Y* Q# A5 ~, R
struct SelectSpecialization<void>3 G f# v, k W. f! W8 d* X6 }
{
" {# x2 B1 F2 H' ?# O- n template <class Normal, class Void>
7 h4 K2 o. y. `0 T struct Type { typedef Void type; };
L/ a7 j. Z6 f2 k3 ?/ z; W3 c};
) G% T( E7 I' K* y4 K B* P: |( Z
template <typename T>1 y5 n, C$ L9 M2 M1 z
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable4 e7 P3 L6 M& b" r5 p; t
{
/ v1 ^: b9 t# _- vpublic:
+ P3 W( {& f6 _& h g3 t' `) [, q6 w QFuture<T> start()! D$ G) g% K8 G7 O: X o
{6 P4 a( @) ]& _( X8 f# i% K% p
this->setRunnable(this);
( J2 Z2 Y+ u! n4 ^4 {1 o$ x# ?* _ this->reportStarted();( e2 }' n) L% ~ j& `$ a
QFuture<T> future = this->future();
+ {% t0 N! a! y' R QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
$ C: S0 L3 O* D. v; g return future;7 }- H2 z* J2 ?' P5 t2 }7 U w" }
}
6 n" v' ~* ^7 t W: S$ w. b5 e* p$ k/ q! Q6 m
void run() {}# R+ w1 ?& c' G0 v! e/ M* K
virtual void runFunctor() = 0;# t! u" h- e' L; @8 t
};$ P' [* {7 O" `8 ^" o. u
/ T& h+ D, D0 K1 M5 q
template <typename T>( H7 N: w. T# ~* D3 H7 G- X3 B( W
class RunFunctionTask : public RunFunctionTaskBase<T>9 V+ u# }1 r3 d8 o
{- i) u2 [2 Q5 l/ f5 F2 m
public:
6 i1 I' r8 ?: F! y- e void run()+ S8 ` X8 s9 R: _2 n' I
{
) F5 B4 X4 `3 u2 f/ f: } if (this->isCanceled()) {
( q" R+ F- m% H* v" H this->reportFinished();7 y% G1 c7 D$ `. `& \# |; T
return;
8 V3 i" @5 X. Q% t5 U: B$ D; d }
% \1 r1 J$ x: D3 t* @ this->runFunctor();
# Y! D6 B# x0 L8 c this->reportResult(result);7 R: S8 D6 c0 L3 v+ ?
this->reportFinished();
5 Z; ?/ @5 Z' \ `1 i2 [ }
8 n3 I' C2 I1 @7 i T result;- L# {- h! S( N$ N
};
1 W' f4 `( N; i/ G
, G9 A' C+ ^ M. xtemplate <>" W L& j/ G. ^% L
class RunFunctionTask<void> : public RunFunctionTaskBase<void>, V" I5 H4 \0 b$ R) r/ J5 V: m
{# a$ n, s2 j; x/ B. q; U
public:) P2 |: I3 z; I
void run()
* H, @/ {2 z% {' |) r. K. u {. w/ _7 Z3 o% s* [; I% h
if (this->isCanceled()) {
" c) G1 g3 H Y* _7 G+ d- p" ^% u# w this->reportFinished();
3 N+ d8 v- y6 ]2 A" h return;& `0 f0 H' J. R' Y9 @; T
}
9 x; ^$ b" F# c$ X' W( a3 l% y# Y: K, C this->runFunctor();
1 a) b& o( G7 ^ t this->reportFinished();( y+ ?. T# A0 E7 N; l5 G8 V
}
' [9 Z, e: v' |3 V/ f% |};
# s A7 ^) H; M: T6 T7 A& d o/ s* U ~
& q6 Z: ^& \* ^/ j7 D} //namespace QtConcurrent! j3 @9 @3 L4 Y5 M& B) x9 Q1 B3 K
) h- ?" M+ ]4 `9 S+ L! O#endif //qdoc I) S* e X+ X8 i l7 M
+ _9 Y8 t# u$ g; s5 q! T$ m
QT_END_NAMESPACE
! S6 t8 C v, w0 UQT_END_HEADER
' W; _7 g9 M# D. ]
9 I8 F; z; L/ S/ H) e#endif // QT_NO_CONCURRENT9 F4 t6 L9 g. D Q2 I- A
$ h! ]7 L+ h, s$ C; ^" C6 U+ ~( [#endif
: v3 i9 V) ?! l. H5 ^
* }6 p3 ]( [/ _ |
|