|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
, P5 C. } E: `2 W7 N/ S$ T8 }/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
! _: |4 m* g9 ^! D: h
# w5 v; o8 F4 R$ s l3 v这个头文件内容如下:2 \: q; r3 @) z+ x) x
#ifndef QTCONCURRENT_RUNBASE_H
R# N. t2 ~8 R4 [) I) z#define QTCONCURRENT_RUNBASE_H! Q0 ?0 A! B( X- s& ~
$ s8 K" W, T' s0 B) h& Y1 s4 k
#include <QtCore/qglobal.h>- h) Y' i# R% y) k( }
- k1 y5 @+ v6 S" J7 D8 G9 D% R#ifndef QT_NO_CONCURRENT8 w' H/ c% w% z5 ?9 r& T' j1 g" E
6 U+ o" I/ \# Z7 y3 C, R5 C- f#include <QtCore/qfuture.h>
" S$ ?3 Q. b5 v# i' U, W# {* K" O" v#include <QtCore/qrunnable.h>2 z6 p& R8 _0 K, F& h
#include <QtCore/qthreadpool.h>
4 W. {8 {7 w( v3 L5 Z9 L7 w, D7 R
, g8 A1 N( B( EQT_BEGIN_HEADER
/ c1 j: c: f, K9 AQT_BEGIN_NAMESPACE/ I) j2 s0 r3 }3 j
% Y8 h$ t& B! x2 N. v! _2 U
QT_MODULE(Core)
2 p) `. s _1 I. N- X- I7 R0 C2 Z% d& o
#ifndef qdoc3 u8 ^- Z% W; Q, c" G" ]# u
" e& q: }$ A- f
namespace QtConcurrent {
" y$ x9 E+ L$ z+ b( Y( s* L* R0 d6 s; c& K' a
template <typename T>$ ?" a7 U5 {5 h; w3 s* P
struct SelectSpecialization
$ |5 ?1 m( x% N4 e0 ?( l3 B4 M/ `+ n: p2 T{! X: Q, u# k( b: z4 W
template <class Normal, class Void>
9 M+ I1 O+ @$ i struct Type { typedef Normal type; };' N# P3 U4 ?- {& F4 D) \
};. F: x1 E+ k0 I$ C) k; a" @
. ?( w& s5 P1 h! B' C! Z# {
template <>
2 i6 R+ \# l$ q+ @5 F# X( T. u+ ostruct SelectSpecialization<void>; p! |/ Y. Z; a7 N+ B
{ }* g8 Z# q- k; D6 b# S! _% b b
template <class Normal, class Void>
; X1 E% k8 H# w5 q# |1 x struct Type { typedef Void type; };( s. L, F: j, U# O% a9 |
};: e2 _6 h; }/ _
7 N5 c; s1 p. Z1 Q" Jtemplate <typename T>
7 } H+ U" _) }, w2 r6 Iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
7 M1 \$ `2 @& q0 l& X/ Q{% e+ F! o. z5 c! A# z
public:
0 S: M5 V+ ~2 \5 R8 p QFuture<T> start()) p$ \$ D( r% I2 Y: ]
{
4 E, {& l7 {/ }1 O' W. F9 K this->setRunnable(this);
- {2 f/ ?& G$ I: e" z; q this->reportStarted();
0 M6 Y: N; h0 Z% s+ ^ QFuture<T> future = this->future();
# v+ J0 W" [. o* d! F' F+ ]9 v( e/ R QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 V8 y8 R; f, G" U
return future;
6 a, D& l1 s& y% K% s }
$ X/ ^5 z3 h: r' p( Y1 W& M* P, g$ t7 }
void run() {}6 z4 q7 {9 m) M3 |* \0 R+ F
virtual void runFunctor() = 0;) F/ B+ U& g$ |, r& `, t
};
( Z" z+ f9 b0 _' E; j* V
$ k* r) N% c# W/ ptemplate <typename T>
" `8 K7 E, M: R9 J; @6 Iclass RunFunctionTask : public RunFunctionTaskBase<T>
1 }# P! D2 M8 N5 E5 B{
* k. P# `! P7 s9 a/ apublic:" N j _- b( @) o7 ^! B, o( u) b2 V/ Q
void run()
# x! w+ Y$ L$ ^: t {
g* L2 c1 T' L, I9 e) U6 } if (this->isCanceled()) {
S" t( C6 \+ C" ?3 ]& X0 H this->reportFinished();
# R& \. o2 a) Z- g' ^ return;) G, }/ s7 N5 U; c. w
}* L% I5 U6 { \6 F H
this->runFunctor();& i/ ]* b; @! U" _
this->reportResult(result);
! W& |& F% B1 @5 Z* q this->reportFinished();
& O2 h4 L) v+ W2 L) a. O }- x: S- k/ E& `' S5 {* G, W% a* t
T result;
, i; U" @9 L4 l/ R M3 X4 F};& o5 z( X! @9 U t
1 w# K' T8 l& L
template <>
* n" L8 h7 |% Lclass RunFunctionTask<void> : public RunFunctionTaskBase<void>/ s# C/ S( S" K$ ]# M1 V
{' B2 g* N/ M$ k2 R
public:: h2 r3 E( J; F6 p0 H1 z% Z
void run()
' {2 E4 y. j$ }! z {
/ C. A( n5 U- J* m/ y4 P1 [( F if (this->isCanceled()) {( m0 l# s4 V( F" z) Y9 W
this->reportFinished();$ o2 D6 S$ T, z5 D$ X
return;. `) C6 G' R' _) D9 \. C
}8 [& d+ T% z& Y. z: J" Q2 r
this->runFunctor();
- o, F* Z n- w+ c this->reportFinished();$ _0 \& d# g7 D8 i' i+ r
}
4 ?) m9 Y( e+ U- ]: e& h4 ]' c};
8 B: y- Q3 h# z! P8 x; v
7 I, y' o7 o. p f' l1 e# v2 ?} //namespace QtConcurrent; z( M4 |2 g5 v M1 q+ f
! {1 e& l# A& |- ~2 e' k: r# B7 R#endif //qdoc( m) u' a' E# `3 D
$ d1 H1 M" k6 L( WQT_END_NAMESPACE
" ~3 W, ~) W0 |5 ]; N9 U VQT_END_HEADER) b* p5 l, X2 z# H M5 Q
9 Z3 e7 g v. ^( G9 e" ]# W) q
#endif // QT_NO_CONCURRENT; R0 o/ U- r$ }1 N
+ F! b( Q8 I. t3 A0 |2 b5 Z" ^/ w
#endif
0 g0 U, ?7 b2 s4 G) J' t& }" H0 h2 |1 d$ I/ h- H& w# q* H
|
|