|
|
我对syslink进行交叉编译到arm,但是出现如下错误:7 N8 _* c, R* c8 P
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
2 Q% b+ P! g" h e, w# a# p! Q2 @9 D) Q
这个头文件内容如下:
/ |8 f% U# D/ x6 z' {5 f7 d3 Y( L#ifndef QTCONCURRENT_RUNBASE_H4 V/ B0 Z0 c: S: ?! P* R4 n4 O
#define QTCONCURRENT_RUNBASE_H
8 c% [. o. }1 g; L! \ z, I @ y9 C1 X+ i& [
#include <QtCore/qglobal.h>% a2 M! G% L# k9 f' g, C# j
( p4 ~: l* g0 b9 U' u8 ~#ifndef QT_NO_CONCURRENT: p7 ~$ z- f8 }! Y: p6 K5 Q
' {* J# A. f, o9 N; [$ J
#include <QtCore/qfuture.h>- j4 ~- W1 W( x* {% s
#include <QtCore/qrunnable.h>. R* ]0 ~$ |+ V* r/ W
#include <QtCore/qthreadpool.h>
$ v, A$ k- s9 [1 s) G) t9 @& E: q
/ v, N, r O! u( N4 I4 vQT_BEGIN_HEADER ~& E+ i( y- r5 a) u% W/ I0 J
QT_BEGIN_NAMESPACE# {+ w4 o# t {1 L
+ Y, q/ I1 \( l# ~- y* gQT_MODULE(Core)
) l/ C& d* o4 C! t& y, c2 K
6 A- x0 X6 L3 t5 a, [#ifndef qdoc8 `- a- B' C4 }8 N9 E. W5 j
3 |* W) e$ Q' ?# L$ X7 j! ^ t) Rnamespace QtConcurrent {
, ?6 J# d2 O, ]& \
1 V" z9 s+ [( [, N1 }# g0 l% Ftemplate <typename T>
/ x1 ]+ J8 t+ M. ? Xstruct SelectSpecialization# G: H9 D) r. @1 T a0 |
{
1 K* j# P3 @4 | template <class Normal, class Void>! G" I/ \! P! J
struct Type { typedef Normal type; };
/ T, k1 r% [. |& f, |) @};2 {% R; A1 k3 a; ^( b
7 U- ?! G. A3 f K2 [template <>, Y6 Y) z% L- l7 V6 G
struct SelectSpecialization<void>
! V' O& |7 }+ ?8 ?{. K" [) Q/ R7 w6 G& O4 z, r
template <class Normal, class Void>
8 Q: u$ d5 t; M% z# o struct Type { typedef Void type; };
' }3 i% j% Q' A};' @; T3 x, R1 `5 N
) s- l, ]. k' d9 ]" \
template <typename T>0 c( e, ?9 s h$ q% t2 g2 i" M6 B
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable& o, z8 X5 n, @/ a" _$ u. W. Q1 E* z
{/ m- c$ }3 m/ J2 P$ ]& `
public:- B/ C% h7 a1 G0 K4 U& r+ y8 A
QFuture<T> start()+ n$ T8 g& h( o( g3 y: T8 y6 J* C
{3 c7 G. p" Z5 [" b) {9 e
this->setRunnable(this);2 R/ @% ~3 ]% k8 v/ [
this->reportStarted();" x% @4 K- U2 u0 r8 s+ E4 M3 F
QFuture<T> future = this->future();0 L& G3 p% Z3 ]$ `) ]. S4 |
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);: D- h( a* \* x2 M
return future;) c% R! b9 }, ?% j& U. o
}$ \( B% w T4 k9 o
& O9 h/ ^1 d2 Y0 g; j% L: m void run() {}
2 S" U, b7 M1 [6 u: ]' S virtual void runFunctor() = 0;
- j! O2 E: ` K7 f# i- S};
; a, m- L6 Z7 T7 M' z
% `: N: [9 i" e6 ptemplate <typename T>' A& n( L6 o, L Z
class RunFunctionTask : public RunFunctionTaskBase<T>' j) I) |7 |3 b; t, R$ f
{
& m! w$ v9 o1 b4 [& epublic:
( j$ {$ Q" r. M1 `+ U& W7 A void run()
}( y) j2 ^: u2 z% @, Y {
- b9 a0 |% E. \# H+ ^! ]/ | if (this->isCanceled()) {9 V4 i0 w4 \2 S( Q9 o
this->reportFinished();
* d! ]. d: h! F6 Q" [$ x& M return;
% @) B4 J' x5 ?! B8 b" x. {1 V }' N( k7 b' H5 U9 g
this->runFunctor();
" W$ l6 R2 g4 y) L# U0 f+ x this->reportResult(result);( n, f, c! k' k+ f1 X1 |2 c6 @
this->reportFinished();6 g+ r n' F. \
}
, p+ s6 U, n9 k9 R6 W T result;0 p9 N+ g0 c l8 b& J, n
};8 X. x8 B5 T' Z/ m$ u
" ?" P" S5 I ]. R: E0 H3 O dtemplate <>) {& j* Y2 s% ~% T
class RunFunctionTask<void> : public RunFunctionTaskBase<void>2 o2 @% E" m% m% R5 P3 J
{
* m% _ a* X! e4 {4 Xpublic:
- M1 i; X1 X* J1 O void run()
# ]- ?+ O! U- j8 n' c {3 ^+ A k t7 b$ `, ^# s" c+ @
if (this->isCanceled()) {+ u! p) j* k7 ]4 V t1 ]
this->reportFinished();
3 O4 @$ G7 v( c; R return;+ X4 \+ [* o5 [& b- c
}
3 h3 t6 m3 y6 A( L" j this->runFunctor();* ]9 L; K4 i. b4 f! _8 @
this->reportFinished();
: ~- T3 w1 u! i, I, j S' f }
' n$ ~/ X& C X$ B" C" T" l5 U};
! A; }' Z6 E% e% B
$ q% u N+ v" g; ^} //namespace QtConcurrent$ |' e! d9 r2 F) K9 v+ t
, f! F4 m+ S7 r9 v" e0 s#endif //qdoc
( j1 d- k, e# p. t! Z
9 r4 C* U; X* `" i: N( H0 GQT_END_NAMESPACE
b1 Q, _! U& S$ ~0 oQT_END_HEADER
$ H. m" |. ]: ^4 y& o
: U# ?, W" B, c9 I& \; t T#endif // QT_NO_CONCURRENT, v8 U1 k9 R. |- U& E9 h2 O
' ?, d7 D- \& z- R4 k#endif+ }" \8 q$ Z. [0 Y% t; Y
5 i, W: @7 X0 B; X$ B" Z |
|