|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( P$ k- m. }2 | d1 Z
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
1 r0 [9 T. Y! H+ [/ K0 ?" {9 t8 N+ N/ W' ]. }
这个头文件内容如下:- n) b+ I) Z+ Y( V, ^. n
#ifndef QTCONCURRENT_RUNBASE_H( b$ K. o- @ e, a4 P
#define QTCONCURRENT_RUNBASE_H
8 J# H! W2 T$ x7 g& F1 j0 U' E3 B( k, x7 g' b# w- C) ~" T) D2 y
#include <QtCore/qglobal.h>
' t4 Z- z2 J& ]$ k$ K8 ]8 o9 M+ B) m2 G# s T
#ifndef QT_NO_CONCURRENT
1 q% y) p8 I, j Z# ]) Y! K# Z& i$ m- y6 v
#include <QtCore/qfuture.h>5 g, l2 U; r( F- U: {
#include <QtCore/qrunnable.h>" }" I4 c0 A7 Q! {
#include <QtCore/qthreadpool.h>! t; C) g* b1 ~3 C9 `( z
5 x* p! Y A- \. zQT_BEGIN_HEADER5 G* `1 Z ~$ m$ b, g! Z" O
QT_BEGIN_NAMESPACE
6 j& Z1 A, W9 K; Y1 r: V& b. g) t* A7 S5 L' ~/ B9 R* }, ?
QT_MODULE(Core)
2 X/ y+ a" t* ? Y3 {
7 D, }) N( Q/ f* ]- D( S p* ?#ifndef qdoc
( J, G8 \& h: G1 E# I. p1 t0 b- S" A q7 U
namespace QtConcurrent {8 S" H; Y- O" H1 q4 w
# ~; L& R# ]7 h8 d+ a* Q G+ itemplate <typename T>
7 p7 G, b" w! D# Pstruct SelectSpecialization6 Z9 u" e; m b2 a9 {, @
{9 O& x2 F6 u, U
template <class Normal, class Void>
( j6 T8 q' @- }+ j$ e" j+ ^+ A* y. B struct Type { typedef Normal type; };
+ ]4 g2 o: f7 P- V' P};
8 S& q% V5 e* X8 m- t& R% {: ?7 C
# w1 Q/ W' K+ C* N ~5 Rtemplate <>$ S" U1 ~. Z7 j, O( ~+ t6 F
struct SelectSpecialization<void>
" |) I" K! }; j" u{$ L- H, t/ p' G0 K B
template <class Normal, class Void>- C" W( Z/ |; D" z; ^ U6 x
struct Type { typedef Void type; };% \" @3 w. [" k! G2 W- f a* c
};1 n/ _% J+ r0 Y( B5 v' {
1 \2 _3 p% Y. m' x) @template <typename T>- k+ K- i8 b# c5 Z; Q; d2 B
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable% i8 c* Z# u7 R$ n
{
' ?+ J5 s% [0 l+ ?3 apublic:& r0 t- S/ k" v2 P$ o+ C- x
QFuture<T> start()
: x8 e# i" t- F( x/ C {! R9 ^0 ]8 R) P6 u8 \
this->setRunnable(this); ^5 a. X: b4 b
this->reportStarted();3 _. H9 ]6 r2 Y0 b0 G5 A! G( D. E
QFuture<T> future = this->future();
4 \* i3 m, w4 N G1 s/ g0 e+ a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" h& o9 V9 y x$ @, V( r
return future;; I1 c$ U) N# _4 k
}
% B3 Q! J7 Q" D6 m! P% ~3 B4 h/ D- y3 ^* \# {/ @8 s
void run() {}
! i- a" e; U1 s! Z; T3 F; p virtual void runFunctor() = 0;
# |- F: E8 c, V! r' ]2 k4 {/ D7 [) L};, I# j4 ~6 ]5 P: J
4 ?$ A( f6 o4 d& V3 F( ctemplate <typename T>2 p( M! ]; ^9 N7 H% v
class RunFunctionTask : public RunFunctionTaskBase<T>$ q; n- j3 U$ D9 _! L% h
{
x+ p# p. y, d% G5 i# |: ?' hpublic:
: q* m" l$ [6 r% u/ c$ P+ D, Q+ p void run()
; l2 J h7 z4 X0 t9 v |1 c6 V! T { Q/ {$ O% l; S1 J0 {, O
if (this->isCanceled()) {
6 |1 L( H1 a. v# z7 ? this->reportFinished();3 k0 J' \9 f+ l" n( c8 n* b, z3 ?5 {
return;6 [' V7 L- [- e% M
}
% Z0 W: v" V P+ Y! q this->runFunctor();$ ~: R5 u/ Y ^, k5 b- z
this->reportResult(result);: J' q- V& _: e! Z" y% X2 F
this->reportFinished();! {7 w/ K0 v+ o6 d) l- I/ J2 q
}& T( L, m/ d( q3 x" h. U
T result;% p6 D6 i: m3 r: W% m
};0 {; ?" x/ w/ L, c
& }: B o8 @1 ]4 o1 w; S* C* Htemplate <>
4 H* U% C/ C% l% t+ Dclass RunFunctionTask<void> : public RunFunctionTaskBase<void>' s- W p. Q; F2 t! ?( h
{' l& q+ ^1 t! @+ B9 v
public:
4 H) g) F% r7 P4 w# l' x# f: n void run()5 f( Z9 Y# }1 ^) S" t' Z* d
{( ~$ x) h- I% g W% s, o) U3 K9 b# X
if (this->isCanceled()) {
# P* M( T% I9 t7 n9 r this->reportFinished();
1 \$ b% r" r2 G' F9 I/ c( M9 [9 G return;
6 J, ~ o; r% K# n& z: t) { }7 V( h P% F! E) p, ?5 o
this->runFunctor();5 H) _" y% ~7 L# w8 M
this->reportFinished();! P% b* y3 W1 [5 Y8 f
}! }0 c; W$ _( J/ D
};4 R( a# p% ~: ]8 ^% T# d1 n0 c
1 S- u; Y3 z7 |0 H* g% z9 G} //namespace QtConcurrent, @5 [" S% n1 V8 s7 l
+ V7 k8 v! o& t0 [1 |#endif //qdoc' [, Z6 Y1 q5 L& J1 [
' V% F3 U8 |/ S! F5 n* _
QT_END_NAMESPACE
3 C# D2 w+ B+ A1 O, b+ }8 cQT_END_HEADER
; F1 p8 J, d1 ]+ U! [7 r4 |4 E3 {' B2 c9 y9 P0 Q* Z
#endif // QT_NO_CONCURRENT
7 A! M2 G1 k J" s
/ @* d! J- L& Z5 z#endif/ h% o u8 \3 U2 p' j( Q8 H% R' Z
5 \8 x2 R: t! s |
|