|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
/ r. O5 I7 S, Z; n/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% a# \8 C* P) v! V) t
/ b) F. h. Y. a1 n E y1 n* b. H. w这个头文件内容如下:5 v2 Y: C9 ~9 l# ^1 t% I+ `
#ifndef QTCONCURRENT_RUNBASE_H
0 Q# F, M/ T0 W3 {#define QTCONCURRENT_RUNBASE_H1 d9 h$ ^6 T! w+ e4 U6 I- R
( N) v& c s4 X4 q# Z
#include <QtCore/qglobal.h>
' y7 q0 L0 |( S9 V+ q, }0 S6 R. G, Q% g- d: u" Q
#ifndef QT_NO_CONCURRENT
' A; J5 I& J! I" g* B! Z: K k" P, U% f1 y- K% t6 w
#include <QtCore/qfuture.h>
! Y/ e% Y* o/ D- z$ F% `#include <QtCore/qrunnable.h>
5 `) j* p% s* P2 F2 `/ H#include <QtCore/qthreadpool.h>
' [1 w2 g6 m" i. s8 @5 {' d$ e) d1 Z7 y J% F: \# [
QT_BEGIN_HEADER6 g0 R+ s. d0 y- I" \7 K, c7 r) ?
QT_BEGIN_NAMESPACE
( |. N5 G& L9 ]* T, M' P# ^
0 p8 h2 f; l% j8 G s: \% j8 b7 p+ ]QT_MODULE(Core)
' Z2 N) k* H" G/ h& d: x; [0 E/ C+ ^. X5 G/ y) {; F3 B& e/ T: v
#ifndef qdoc, @6 r& i% h- s9 s% _) ]; O7 M" }+ l( j
, t3 m# r6 b1 m. W- W& D
namespace QtConcurrent {
! c$ e/ _ b/ [5 i
6 M! Z) n4 z( @9 o' ?) Stemplate <typename T>
) ^$ ~! I4 j, rstruct SelectSpecialization
6 S+ q6 }; Q& i% Q{- ?" e; D- W/ H
template <class Normal, class Void>
6 s7 U: p4 z) W struct Type { typedef Normal type; };0 C/ V: G& h' v& f+ C# b% I9 Y3 x
};
' ^/ R3 ?+ R& [( W$ J+ _5 k% N% j T
template <>
" h# n5 a& |* r+ w; h! E( X; vstruct SelectSpecialization<void>) U& s1 c7 j @' X# s1 c* s* S
{
% k @" L# U5 @ template <class Normal, class Void>: G0 m4 T* v% W+ a! u
struct Type { typedef Void type; };* y& V7 m3 J; l5 j! y& j" R b
};" I5 j; s) K" G8 B
+ R8 X$ K6 u5 v+ G0 b
template <typename T>1 c5 f5 X$ L8 \9 `7 i. ~4 J
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 [ z0 x; x! l) r
{$ y, W% F" K! S
public:
: p' X6 H% }- i/ {, |# b QFuture<T> start()
( g' C0 h* Z+ D- Q {; A* e- ^5 M6 F: f, {- [" U
this->setRunnable(this);
9 m2 r$ r: P: s: p3 X R1 K this->reportStarted();
5 x" {5 D2 j+ ?% r QFuture<T> future = this->future();! T: {+ T$ F2 i4 @0 q( K" K* P
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. n! [& Q5 [9 O+ e0 e. t" Q
return future;
. Y& f/ J, I' \% W! f1 D! u0 b }" N# d6 G; x- i/ G
) l3 z$ O4 S; ^
void run() {}3 T( n9 y+ ^9 u; N) O
virtual void runFunctor() = 0;
6 m; c$ m4 w% `};
; {+ L0 Q; {) m9 t) T) P$ N3 z* g5 v3 [/ X) W
template <typename T># v. m% R: y9 G) }% U+ u
class RunFunctionTask : public RunFunctionTaskBase<T>: y% s" Z$ X {1 L+ K3 `% }1 U- Y- y
{
) O/ B0 _% B8 Gpublic:" a! c( x! z; A
void run()1 o1 U4 l3 H7 [& o- C
{
}9 g/ W }( Q" y if (this->isCanceled()) {4 W( I2 K( k& ~* s2 a1 L* p4 h
this->reportFinished();3 L$ P$ i5 p4 I/ A6 m
return;( C9 ?3 W) }. e
}) F' N' J; y4 S" H7 a; Y
this->runFunctor();
* }% {0 t3 F& u9 d( `+ G1 U5 c- a this->reportResult(result);
+ n+ t5 G# E1 }$ c' e0 d2 L this->reportFinished();
+ x9 U* U# p: a. P' F/ p+ M3 ? }* O& p# n5 U1 k! C. s
T result;# r- d0 I& }1 L
};, C5 Z% E, l3 V" ]/ G8 a4 K
: a* w3 N, |3 {. ]1 S; e
template <>
c* G( n f# U; Z% eclass RunFunctionTask<void> : public RunFunctionTaskBase<void>- n9 k% A/ A# b- b
{, E9 |9 o& f0 f$ \% q6 q% k3 `
public:
6 ~0 Z' I# A; c1 A" W7 X, |1 W( ~ void run()
/ [ @, o& q( L9 p) U* m {
4 b4 j5 G3 `# k$ W7 I. ] if (this->isCanceled()) {$ W1 Y$ t# Z: g; ~4 X
this->reportFinished();* q, a! e2 G5 {) H! j
return;0 \- d. i. O* R
}
; f6 R; q& z; Q5 n& ?2 ] this->runFunctor();
6 i0 n3 ~5 z8 J' h9 u this->reportFinished();6 y, W+ w& v- o. b! D( i- z
}
) N1 e y2 h" q" Z};, B# P# e2 ]$ R8 |6 B
) w" p+ V8 H4 [2 K6 D} //namespace QtConcurrent9 x3 Q) ^; N @ K0 {- f
* T' z' k% N: _8 o2 L+ v/ ]. P
#endif //qdoc
3 h& N- x7 f$ Y' Z j, {" f: F$ e1 }- d
QT_END_NAMESPACE$ ~: p& v: }7 w" q2 x' p1 b9 }
QT_END_HEADER4 N" j' f1 Y. x& J9 Q& h
$ s+ g8 Y) x/ C" _3 C; P#endif // QT_NO_CONCURRENT- q* p! K3 z2 X5 e2 a, b8 t! d& c
' |( O3 m! g; d! l: {' o4 p#endif4 Y! i2 j- R6 ?; O
* x& l' V" Y+ f! c) H) t
|
|