|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; d9 h/ {. a( V [
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'8 M6 Z% M6 K4 q6 X; W |& m
( M3 s/ e0 K7 T8 A6 M
这个头文件内容如下:
/ M. x8 y. m* O$ K; p1 @#ifndef QTCONCURRENT_RUNBASE_H3 d7 G8 o q5 O& w! c
#define QTCONCURRENT_RUNBASE_H
; K. L7 ?- ~4 v2 J2 s2 d" ~. I
. y) E' d6 o( x; d, d0 `- O#include <QtCore/qglobal.h>4 r( P. \" E( [$ K2 r2 n
' k% ~. `$ ? v: h& t9 J, H P
#ifndef QT_NO_CONCURRENT; e' n) q! b1 l& c1 H
0 o. N2 h v; \: Z1 K0 Z#include <QtCore/qfuture.h>
9 z% D2 ]6 ]6 _7 c W#include <QtCore/qrunnable.h>0 Q4 r* w& S1 {) U" }
#include <QtCore/qthreadpool.h>( U4 k7 G% `0 e6 r
1 j$ t1 ~+ E) k; J# v8 d5 \! AQT_BEGIN_HEADER B# Q6 m4 `, c/ c5 M- I# T s8 B! Z
QT_BEGIN_NAMESPACE/ b8 L# h- f; N ~4 i
5 r1 s' G4 S$ i! w# K
QT_MODULE(Core)& d$ p- H* o. R8 \/ H
6 T0 }3 ~8 L, ]/ H- R
#ifndef qdoc
* I# N& ~+ _4 k0 X
" Y6 t/ @3 S9 C) b$ H" knamespace QtConcurrent {; ^3 z' T6 V7 v* X: f U" P
8 h( _( M0 r2 z0 z3 H! V
template <typename T>
" K0 j0 b% ]: T8 \struct SelectSpecialization) [" W: F9 R& s3 T1 f: F$ M/ O
{
' Z5 l0 x" l+ | template <class Normal, class Void>7 K: X+ T: t& G! O9 O5 u# F
struct Type { typedef Normal type; };
: w& z+ Z4 V, m7 u9 t- K};
* a2 O& K g3 @
3 F. w$ a3 n( C. H5 Utemplate <>( W+ x' I& Y$ a( v2 T- e" M) s
struct SelectSpecialization<void>1 D2 w9 }# e# r$ |1 d1 {; q' R" c
{
; c. K6 _# A' A. k3 b, e2 C: }: ? template <class Normal, class Void>
. K. ^+ ^9 i e- t( D7 V struct Type { typedef Void type; };8 K7 V8 t% X7 |! h, U( r; d
};9 w/ ?$ b8 J; O. ]% e5 e
8 g: V6 j: b4 y5 B$ N! }" U9 @
template <typename T>
2 l9 i% g8 e5 u( ?1 Q. N' p; V4 lclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 X& s6 N) z0 q: ?+ G0 [" R* n{
5 U, l& n" \- ]! m& [7 u& Ppublic:8 x/ A: F9 Q! l
QFuture<T> start()
0 L% X1 p0 O, S8 N2 E5 t! s& G$ i {
* J; Y1 W. @0 j0 J& ^! @& e9 C this->setRunnable(this);
. G/ {. j8 b( h4 e. ` this->reportStarted();8 O: ~* |7 ?7 A7 k6 v
QFuture<T> future = this->future();' \0 `+ t t9 ]* F% G' Y
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);7 l, ?- {8 `4 Z7 R" u5 l
return future;
1 A1 ?, _: N/ P+ P2 @ }' u5 ?8 D( I& X- e/ t( }
: O C# v* k) \ void run() {}
. B# \( a9 |1 |% ^3 X( I" J- s virtual void runFunctor() = 0;
J( u& A5 w2 j; Y) q};2 N, V2 R; |9 w( `$ x. @
% `$ {: r( t3 h. ]& e% t% ~template <typename T>
& E4 [+ r5 Z0 O6 P+ [7 kclass RunFunctionTask : public RunFunctionTaskBase<T>
# ?/ j, k/ g8 ~( ]{
" P4 X. ~) l5 n6 B+ l5 Xpublic:
6 O/ ?. E$ b0 [7 M' R) I9 s void run()
8 y8 s5 l- X; h6 e) v `5 U {# g* b- d y- C. |- y5 o! S
if (this->isCanceled()) {
+ v! e. { g8 z8 q this->reportFinished(); G: p+ x# g6 L5 A( S
return;/ X" ^7 O# }/ Y1 I: E l7 g
} A+ k3 w5 q2 F+ R% b f
this->runFunctor();
. w# v4 o2 \" ?; l: A' B- n this->reportResult(result);& `+ {' q8 |, [$ L0 w2 \
this->reportFinished();) f- |, J8 `7 x6 M- G: O1 E/ E
}
; E7 O8 ~5 i' S T result;: K& `# Z% Y% \. {7 o
};' `0 }3 ~- L1 G6 s; O
9 J$ E# |. L' `! C
template <>
- C% |9 D* @; |# i! Q9 R( nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
' p/ P6 P) z e w/ i8 n{5 L! e0 z% ~- `+ p, r- [
public:
/ ^) @8 X" i; g! d: @ void run()
! c1 p5 x7 s) B# K; c$ }; f {1 i! G1 i, }5 T5 O: q6 Y
if (this->isCanceled()) {
# {& J* I( _1 ?# h( ^! l this->reportFinished();
" y. ^* F+ X$ ^! Z return;: a! V# R2 n9 R
}
: e/ ]% s* q+ P" G& [% z I this->runFunctor();5 e4 }. X- |8 j1 s, a w) b, `
this->reportFinished();- P4 c% E3 K# D
}
9 L: g/ {1 H. p};
& z. r& B2 \1 J! {( p
, g4 ^5 ?. [9 p' A; A4 l# L} //namespace QtConcurrent
! W; u s; W* ^4 ~8 j8 Y
( ~: C. n# F V( Y#endif //qdoc
+ _& e' F! ]: C
+ T; h4 U' f, \; mQT_END_NAMESPACE2 s z3 d0 V+ `4 k
QT_END_HEADER0 c/ _+ `( Y% I% ~: S
$ I& F; \4 Y' i8 M* L#endif // QT_NO_CONCURRENT9 S% }. T5 z2 G( N5 T6 Y$ I
8 z. ]9 E# Z2 |3 o4 s( K
#endif2 y! j6 y0 Y2 @
/ M: \7 I% R1 K |
|