|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
$ M$ ?+ I, \% u! S0 |/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- T# _: W. A9 t7 V( B
6 h! Y7 S2 U7 \2 k. Q这个头文件内容如下:
2 _! V9 U) l5 q$ F* Y#ifndef QTCONCURRENT_RUNBASE_H' K6 B. `8 T0 `4 \$ ]
#define QTCONCURRENT_RUNBASE_H: N, H1 W! M$ S+ a
' Y0 @$ Z4 E; ~$ y& v$ P# _% r( v8 H
#include <QtCore/qglobal.h>" ~% J* `( m" f N
& Q3 H2 |- F# Y2 `#ifndef QT_NO_CONCURRENT. h9 K! @9 d8 E2 L9 Z
7 v1 p, n+ b( A#include <QtCore/qfuture.h>8 l6 ^ n _( o( |
#include <QtCore/qrunnable.h>
( [3 H& A9 D* K* C! Z#include <QtCore/qthreadpool.h>
1 m; w) }# M; K+ A# c0 j$ `' E% I7 G( H0 f$ _
QT_BEGIN_HEADER( m. [) Z4 s# D7 k, B/ L0 B
QT_BEGIN_NAMESPACE
! }6 K" C0 V( m! A, k4 g3 ^ ~% T [% | e# H0 _5 }
QT_MODULE(Core)+ ~9 z, t3 p( q& f7 C* w
/ {% `1 g- N. ?; z" H, H& j( k
#ifndef qdoc' D. o' T" d/ U x( R7 g5 k7 T
* d) @* ?3 F* X7 T) k) F! y' @
namespace QtConcurrent {0 p3 d. s1 E5 ?* R# H
2 L/ p- U9 X! D* Z
template <typename T>
4 V9 B$ O7 r1 H& N! A4 |9 kstruct SelectSpecialization c5 r4 O* e. Y
{- N/ c0 C/ c" |4 f, d
template <class Normal, class Void>
0 }% ~, q+ _+ v, J& Z+ b ~ struct Type { typedef Normal type; };
# L* _. V ?1 K};
5 a) N& r, F+ k8 H& e1 q- f9 R
3 E4 y# V0 R5 Y# mtemplate <> ~0 i( \2 T- x2 a* ?$ j, j
struct SelectSpecialization<void>
+ O6 Y, F8 P* D! `- d{
+ I3 o( V0 L( y- r template <class Normal, class Void># R" g! s# r* N* V
struct Type { typedef Void type; };
' f: H; V9 A. a( {) J1 b4 K};
: l4 I# Z2 y* V! Q9 O7 \: W3 M. [' \. W" N/ |
template <typename T>+ P& f4 ~* d1 G/ L* ~
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! P0 u0 i6 P" ^& F' a7 Q. _{8 j+ H4 W2 q* A3 Z
public:
( n; Q$ j$ x3 H9 q" _. } QFuture<T> start()
3 H0 }' V& ~# g {
! X" o; z7 p3 a3 B6 C8 b5 O! D this->setRunnable(this);
. E+ ^( z* }/ ^) F2 P& Q this->reportStarted();
' c) r4 U& H- I$ ]5 J QFuture<T> future = this->future();+ S8 h$ f3 g6 S2 f4 P
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);% T5 Z' z, w4 m( P
return future;" O2 t) k% n9 K+ \
}+ V! v+ c. z# v: d9 z
' R0 }" F' r& U/ K1 U; z void run() {}
/ K! A2 N+ s3 K9 z" P virtual void runFunctor() = 0;
& Z' q/ R0 J/ {- ]4 M) W};) Y( c$ F/ K/ e( k* a
8 _6 Z$ L' T/ q7 d( Y rtemplate <typename T>
5 v, W. g- c- `class RunFunctionTask : public RunFunctionTaskBase<T>
" D; _) {/ P) L, q{
, X/ ~8 b. n( b: s1 Dpublic:
# t y5 {# h/ r. a0 ]. m9 \4 B void run()" D0 ?, \ q* L
{7 s5 j1 q6 P6 r6 \4 f2 t
if (this->isCanceled()) {9 z& |0 l4 @/ w2 g
this->reportFinished();
0 `# H: r4 S u7 i, o p: [ return;" q# t3 J; h$ [0 K$ p0 l- H% [5 i8 C
}4 ~1 v- ~ X: e: R. T
this->runFunctor();
; W4 f- v' q" D. P/ B% } this->reportResult(result);( R6 m5 P. l! a) H& b$ Z5 ?
this->reportFinished();
3 q7 P+ o8 P6 E$ `+ p }- r* Y/ }" i% Z0 m
T result;
; S: W9 k! n/ @) h% U! i/ w};$ v4 u. D; L: _
( o0 x" n/ r' s- Gtemplate <>
5 Y% \2 a1 G1 T5 B, O- b7 Qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
' C# e' |; F. ?{" E0 \3 p; f% b2 B5 @& l
public:: F; i5 I; @/ D0 h; d' Z; t
void run(). e+ z* U+ C" C! z
{
2 p" u/ Y# _& K7 ]5 R if (this->isCanceled()) {4 O2 q/ p+ p" O9 e$ s
this->reportFinished();
m- Y" y2 e8 B' N) L/ c; g# U; _ return;% X* m$ u2 o* X$ z; u' J( q
}
7 x' V$ m8 j; W8 N: s' M this->runFunctor();
) a& S* U6 P% Y3 p this->reportFinished();; ~2 e" t: G6 l$ L7 s F8 y
}
+ n* ^0 ? R; i5 O5 c) y6 ~. t8 S};: F2 ?( `/ d/ k: @9 }4 r
2 w# m* L7 X4 ~2 Q2 k: h( t# C} //namespace QtConcurrent- O1 U2 X6 W$ N3 ]
: d* D R9 A+ D+ ^; |; r1 M#endif //qdoc
N- u7 }5 ^" G1 K! S: G# Z' k$ T: o9 l' x5 ~
QT_END_NAMESPACE
7 D. o* b8 c9 Q: h7 p _QT_END_HEADER9 r P6 m0 I- ?
1 J5 C. c/ W# v! M0 w. {7 s S) L! m
#endif // QT_NO_CONCURRENT
: h7 p: ~, N- A& g8 ~1 i( ?5 U; V- t8 {* G# g
#endif: H- }. H c: l# n) H
. I: J* r* u! X( m* D2 B) [3 b' Y
|
|