|
|
我对syslink进行交叉编译到arm,但是出现如下错误:8 D! n) R: D- g6 x3 `0 v, 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'
S3 q4 B$ H. p9 l: o* D: ?) \9 E6 Y0 Z: w" [
这个头文件内容如下:
) C$ a6 F! H8 @. o* ]- l6 }) l( t#ifndef QTCONCURRENT_RUNBASE_H
c( Z; l8 x( G6 A- W#define QTCONCURRENT_RUNBASE_H" `* K2 f$ ~& P6 K2 r8 \3 |9 S
( R3 i/ W7 J$ G$ }+ ]& G#include <QtCore/qglobal.h>
, e* R% `3 Y1 g3 F& D% O y, _) m. X+ I& Z, }" ?" w3 }& Z
#ifndef QT_NO_CONCURRENT$ p4 C+ ?9 K$ D3 v2 [
8 q) y! C* ~( P
#include <QtCore/qfuture.h>
; Y5 L' a7 w. [& w, d0 H#include <QtCore/qrunnable.h>' t2 M, C5 g3 y; F" W
#include <QtCore/qthreadpool.h>: R- O! k( G7 E, ? [) `2 G
5 K1 h/ [% t" W6 _; r7 e$ U- M
QT_BEGIN_HEADER( p$ m9 J# v4 g/ O% [& z
QT_BEGIN_NAMESPACE
, Z u* e. A5 U8 c4 ^
. X. q7 F( b3 Q4 R! x( D, nQT_MODULE(Core)
5 n0 K; z( F! g; C$ f7 L6 i
1 s# e/ r5 H, O$ r; b#ifndef qdoc
. [6 L9 e" ]6 ?7 q
7 n; `9 B; @: _. a. snamespace QtConcurrent { o$ L5 L9 w) w# }
5 _6 a7 o/ j) [( W# X K
template <typename T>! @& u* L T- {
struct SelectSpecialization
! c( i% H* `1 m! d$ |1 h5 A{" m; K/ ]0 Q) b- K, {1 [
template <class Normal, class Void>7 `: z! l2 C1 B, o: e: d+ B. }
struct Type { typedef Normal type; };
" b" Y z, {) s% U$ c};' w8 d5 l1 Q) E2 z% L* i
5 w u6 x! f4 O# c6 T% }9 L: |6 H4 [template <>0 C0 n/ l. y1 v1 X% E3 `/ e1 R# P
struct SelectSpecialization<void># W0 t/ N7 d1 ^
{$ M7 v% k5 S; l j) n& B I# R
template <class Normal, class Void>
I' {$ w* |% V; b1 ~ struct Type { typedef Void type; };
5 i4 ^# I; T1 M3 A5 G( n};
4 l8 v5 O: I w9 D$ F9 a" D
& }7 t y F; M) _template <typename T>
$ h% u* j: ~0 ]: U( N8 X! K6 [class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ {0 [' V5 K# k4 p4 T" b{
& j3 ^7 s6 A! hpublic:% R. t" i1 @2 L. A
QFuture<T> start()' i: A0 S: p, X/ Y' Q
{. n s7 a# ^' W$ j
this->setRunnable(this);
. C+ i8 c# ^) N1 _7 ~2 x' n this->reportStarted();; X/ ]9 f: {, T! b3 V
QFuture<T> future = this->future();3 L6 U* n+ m3 [, R3 S4 k( _
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);- Q7 S9 S: _, w5 n) T$ T
return future;
# V2 l/ C+ J1 v6 n* J }
5 [1 T( ], t9 U, e
) @* k5 n+ d- Q0 J void run() {}# r g/ z4 W% K! f' M; s) D
virtual void runFunctor() = 0; P5 ~! z1 b# j5 h: m0 S
};
- @" p* h2 e% ~0 A- }# e& W' V+ U. {' ~8 z
# R% U+ z. c; W4 i7 ^* H7 ftemplate <typename T>& t& Z: U9 }' G) e
class RunFunctionTask : public RunFunctionTaskBase<T>3 X0 z9 w `7 E( V5 ]- J; O
{4 @7 g1 ^$ L. h" @7 Z, b
public:1 h, P5 G1 n5 u+ J
void run()8 I) J$ c7 ~7 c8 p7 N, x; A9 J) N
{) q1 W. E1 y* B* \& z
if (this->isCanceled()) {
- ]- S9 }4 N2 q4 K+ w: } this->reportFinished();* ~ v" [! \5 s) V# g
return;' o$ g0 `8 V+ }8 [% O7 L
}3 p. G! S1 ?$ m
this->runFunctor();
. W4 h1 O, L- U6 D# P/ ^1 D this->reportResult(result);; e/ R+ M. U; X0 r1 O& y1 M
this->reportFinished();
+ ~6 M! B' M# m- Z }
0 V* {. s' e5 { T result;0 x% {1 q& h* |) S& l3 f6 G
};
' [2 g+ A- L1 {' R4 ?" n6 N2 l, e0 g
/ P. u q. a. j; ^3 Y L* \/ Htemplate <>' J0 v3 a8 Q G {
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ g [5 x& w7 V# D$ v, i{
4 _" M* a6 C: \' a6 Y& Ppublic:
- |' s! r; @1 S$ a" E void run()9 S1 q( f! A% L- g
{
7 n% J( V# S8 ~ if (this->isCanceled()) {
: |) W0 K- J* b" u this->reportFinished();
* `2 a( C# O9 x2 n4 o$ U return;! A ?% [) E1 { x( `
}
9 f- |2 T" g& n4 N6 A this->runFunctor();; U. i) [' `" [ z: {- s& ]. V
this->reportFinished();8 x( c4 F0 p: F7 w0 [& O7 m
}- p+ j7 ]8 I, L$ f( ]8 e, R% }
};
" l* |0 L+ U8 ~& @% }
+ V1 [" M& c. B1 E: S} //namespace QtConcurrent
& B! n; p; X- j) g5 \* e
+ ^& w- A, w% z#endif //qdoc
9 j, u9 n& n7 R, Y7 U$ z( `! s2 @
QT_END_NAMESPACE
A1 A d2 `4 K o: NQT_END_HEADER K+ J' ?$ Y9 \% v
; d4 i+ Z7 r% T+ V#endif // QT_NO_CONCURRENT" `' f4 q9 }/ L x0 }1 j
* m2 u4 o6 A$ @+ y0 }
#endif
2 T! @+ [ F, W( |. W
3 e D% w* u/ j# w& ?8 k- I |
|