|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( X: s6 X G N0 u: }: M1 `* O, g+ G
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
# A4 Z" S; C# @5 B4 q8 @9 C" K$ N2 b2 K, X
这个头文件内容如下:
; |. N1 p/ Z6 `6 w#ifndef QTCONCURRENT_RUNBASE_H
' @" ?1 ~4 f5 ~1 s6 Z% O#define QTCONCURRENT_RUNBASE_H0 ~1 ]3 D: ^. z5 ?9 B8 ~
- E# d% ^/ L, Y3 H* g#include <QtCore/qglobal.h>
! G9 ^8 u- \4 O8 Q' p$ e
; W2 s5 [3 U) J. S4 N5 d6 {. N#ifndef QT_NO_CONCURRENT
; Z8 X% t, ~; B
2 o/ Y7 F* q- e# C! S+ r* P, `#include <QtCore/qfuture.h>1 Q4 S8 U( m2 ?6 s* f1 O
#include <QtCore/qrunnable.h>
" G/ W- e3 I( t# I6 q#include <QtCore/qthreadpool.h>. A4 b0 t/ S# \# N% g1 ~. p
+ @' u' I) s$ ^) TQT_BEGIN_HEADER5 l# J4 z; k) a
QT_BEGIN_NAMESPACE
' b1 P5 {) {% d& E9 K4 r+ C' [; A3 q* p) R/ n4 v# ^
QT_MODULE(Core)+ l) H% {2 H7 c; P4 I0 P; a
8 M6 {% o4 i! L; R6 D#ifndef qdoc( g! {! S- h3 x, H P
+ m8 e0 u/ K1 e7 J1 ?) e/ @4 Lnamespace QtConcurrent {, m5 K0 E( m3 u: h; g6 L
: v) F; h( L5 n2 _1 M1 C) g
template <typename T>9 D) _9 p" ?& Z
struct SelectSpecialization8 a! G) P( ~2 a
{
, h d- J7 ?, _" V- L template <class Normal, class Void>
4 f F8 q" }, Y4 G0 \ struct Type { typedef Normal type; };
/ `( y" {. c1 n9 |, T};
2 X1 g+ Q5 b8 f h) r0 y$ A% f0 k2 t) X
template <>, w. h: Z$ g( y6 \) Z) \0 K* e! J7 `
struct SelectSpecialization<void>' X3 I: u% w$ B$ {4 j
{
. Q4 {/ w7 B; K, M: @9 v8 V template <class Normal, class Void>
5 H6 m+ G4 P3 c5 a: U struct Type { typedef Void type; };% \: _+ Y! `, @" L
};7 G' V: }5 _, B: ?) L- L; y# ?5 w* _
V% B3 ~: a% _. r" }+ r! J# `
template <typename T>
. F$ F% n1 b" i' H$ {" hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable) n; T3 X5 G( S) i8 B, y4 _. e3 L
{
3 _$ H0 T4 @6 d9 |public:0 a# n6 H5 ?" l+ R3 o
QFuture<T> start()8 F2 t* b' c7 j9 j
{- p' }, }7 W& P- q$ e' t
this->setRunnable(this);
1 a5 X' P7 v' |8 L% a this->reportStarted();
" ]/ L! r3 v1 i1 p/ ^0 b/ p9 ` QFuture<T> future = this->future();
% ~& D+ Q: c! C) w5 @0 A! f QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" ~) ]6 J- A) V8 F a. O return future;
8 n* f( i! k6 X) o V% p8 o& g }
* y5 F0 F1 ~. r, [' \; d$ c$ D0 W; e0 H; u; G {$ M O
void run() {}# C5 ^; V, {/ y" Y* T* V% [, M
virtual void runFunctor() = 0;; K: ^* Y0 ~% ?! ~4 D
};: X, ~& `/ a7 z- F- \4 x C
`6 |9 m! `* Q5 P* wtemplate <typename T>
% h4 L3 D5 D. f. ] o' zclass RunFunctionTask : public RunFunctionTaskBase<T>
$ o0 H. y& g; q( L ~{
% [* d" a0 K+ s7 Ppublic:5 {2 Z+ P H* B# Z3 ]5 g
void run()
: x) X# k' G; f: T) q {
J0 n$ T# X! `; H, D9 ]8 P5 m if (this->isCanceled()) {
3 o$ v# Z0 w4 N+ W3 y& w1 F, d/ l this->reportFinished();# @4 ?+ o) P3 \
return;
. ?: y( s) K" s$ ~ }- |2 c q1 s& O0 @
this->runFunctor();
4 ?" U2 o9 L4 k/ `: m this->reportResult(result);4 n# I* z. c2 B( \
this->reportFinished();
8 f( O: w, U) N0 w& B: E }, z% k# H. o3 Y/ W7 ^
T result;$ m, k- G7 W5 e2 s1 X
};
7 B8 D5 {' d, f$ }4 N+ t1 v( x V0 a2 Z
template <>/ w5 ?5 a* i$ p9 U7 H& P' j U0 I
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
8 ^# x9 J5 Z: V5 Q* J- U{
* T( }" U# _: U2 i& {# \6 N! J5 t) zpublic:" f% R! b; ~; k( a" H4 _ D! [1 G
void run(); g1 S( W& a6 ^* \2 O
{! h s1 k$ ^0 ]( R
if (this->isCanceled()) {) K$ ~# N/ h0 ]% W/ F: T* n
this->reportFinished();/ D2 O+ u" \' A5 R
return;6 W7 K! ?" Q3 E# b) ?$ A8 V2 G0 {$ a
}
' R( a0 q" h& [8 h5 d this->runFunctor();
3 c" S* F7 Z' {4 Q this->reportFinished();
3 F) Q( s! ]% w9 n1 a }
. r1 O0 U! |% A& p' v2 x};
2 h4 }6 G6 D9 [# R+ @# n# O# g" b! B$ t/ y/ T% W7 f3 n. a
} //namespace QtConcurrent
$ P3 M9 n/ q7 F
6 @1 w D4 y" `- r3 t#endif //qdoc
5 \$ l( v {: q6 i' C: U- i: s7 P8 U" e% A. R
QT_END_NAMESPACE
% l T9 D# d% n6 @QT_END_HEADER
! A' t( j6 o- X. L
* m+ a1 I$ d; h$ ]7 [8 y5 L#endif // QT_NO_CONCURRENT
. Z% W' A/ C4 o. j9 n" Y8 Y
6 e/ E( I9 a, b7 ?8 E" B; Z: ` F#endif9 B$ q0 D5 u( q4 N" T: |4 M- |8 _
2 _% |! |& h" H' y) |9 d |
|