|
|
我对syslink进行交叉编译到arm,但是出现如下错误:0 l% _1 U" G% y. ?4 f6 L
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'' V, {0 T9 L) f- V
) Z+ U N- G3 Z% D- u
这个头文件内容如下:
1 t1 g5 s, u0 r5 K#ifndef QTCONCURRENT_RUNBASE_H
' u8 ?8 W4 D- t, d! D7 q#define QTCONCURRENT_RUNBASE_H4 C0 S1 }0 ?2 \. i5 e
4 b7 ^4 F0 w. r#include <QtCore/qglobal.h>
7 `* J8 u8 p6 E! [/ m. w$ c, B6 `/ W% r1 L) Z* n# j/ b
#ifndef QT_NO_CONCURRENT R: e3 d0 ~" e1 v+ E |9 S
1 m4 x; f0 O) ?1 S R/ r& H6 ~9 k. g#include <QtCore/qfuture.h>
V G+ X$ p+ ^5 U8 U8 f3 G6 m( r$ u7 a#include <QtCore/qrunnable.h>* }) n0 Q' J' j9 x6 Y' r5 l
#include <QtCore/qthreadpool.h>' c' u; X. T+ M; P/ Q0 \
; ^8 i& \6 x3 Q" ^% u% PQT_BEGIN_HEADER
7 }/ W/ b- U W( D& F: |$ I9 e- ?; KQT_BEGIN_NAMESPACE3 U9 a+ S. _ g, V
2 q3 \9 E9 Y X8 C2 zQT_MODULE(Core)# J- f( N( ^8 F8 a
! ^: f: i f3 M9 t& L#ifndef qdoc: ` T# o8 l, Z' r
" L, [' D0 `# t( b& T
namespace QtConcurrent {0 R" s0 n1 m) T7 i
4 x1 h! |- g- O
template <typename T>5 z0 E4 Y" D2 i0 e: n) q2 C
struct SelectSpecialization
! v( ~0 L( O, g0 } s1 P9 ]$ Q{+ b8 u: [7 a9 W4 y+ C
template <class Normal, class Void>
! U2 g0 I9 [1 }' t struct Type { typedef Normal type; };
2 I9 y) D; E8 c( E ~# E- G};# s5 D; B; k ~5 \; |* M
0 p# }5 u4 @$ a" g7 U ntemplate <>8 }9 R, R/ e! k; K1 Q" l
struct SelectSpecialization<void>
- W* `( O* \, ~$ H{7 u- Z) h) ~$ V* u8 B6 J9 c% I
template <class Normal, class Void>2 Y+ c+ y P2 x' @
struct Type { typedef Void type; };
+ Z0 U& M, E3 J3 h6 m" l};
! ^0 N" c4 B- R1 s) w. I
- w! G6 m+ \- E( Y/ J9 S# |template <typename T>
/ u3 B. m/ Y4 m" f% L5 w. s3 Tclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 s3 a& y+ t ~' G# B% [9 z* o4 m{
% ^% H* \( N3 Z9 Rpublic:
. `1 b9 [. Y: F/ i3 k' {$ S. L QFuture<T> start()
& ~8 r) @. ~1 e7 f5 a7 Z {
8 @& j$ c, m$ f# U this->setRunnable(this);
6 @, N$ w: `) @ this->reportStarted();2 x3 b$ M6 d8 A/ X2 f3 p" T6 m
QFuture<T> future = this->future();# S# j9 Z5 L1 M4 d4 ? G
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; `8 h1 ]9 W' F' K return future;
& {2 B+ @% E% |$ t' L5 k( g }, |% C# g2 R4 X1 x1 X
( M; H2 s5 x4 \! h
void run() {}# z% Y4 G$ @$ i3 b/ B. r4 W
virtual void runFunctor() = 0;
m7 E/ v4 [: F4 {};- n* E+ l1 |8 ^. ~$ m
8 A: n4 T- m7 C# G& d6 I
template <typename T>- r, V- [ A# I0 }: s# A, K
class RunFunctionTask : public RunFunctionTaskBase<T>
+ ^7 ~6 ^* a5 X. S{, k7 ?! P2 p" r9 q2 i V
public:+ v! ~5 W2 a8 q
void run()
- B& s) q) B7 w7 `! Y {
, s- M$ c8 M D; A! N L- \ if (this->isCanceled()) {
% p5 z! K. K, w2 |5 d& [ this->reportFinished();/ e+ n0 V' h: ~* q: {& |5 _7 X
return;
; r, t: k! I' G3 n$ f# d }& x' _- q+ b) P7 S
this->runFunctor();: F! a; |6 g. D$ B, b
this->reportResult(result);! M! |+ E% l2 r$ n7 T0 P, T; ~( C
this->reportFinished();& t$ f0 S ^6 @' g' G& G8 h' ]
}
# s$ H- x7 H3 @5 p. J T result;( h8 w& I2 H! \6 ^1 j( Q; K* i
};
" c% A+ A$ ^+ V, a) U( J: p, h
/ W& Q% L; W& _+ p5 B# Atemplate <>
6 t1 W/ a! d0 F; O& f& uclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
; o2 [# c3 Z8 n) N, U{
\' w/ @) e+ x6 b- i9 y/ M7 W, Npublic:* Q9 C, d Z. m8 b, \- Z8 ?9 x3 {9 z
void run()/ u/ v6 K9 {1 w/ w
{
7 r1 N8 t- t. Z- y9 s& { if (this->isCanceled()) {
. h% A$ D2 E8 ~: k this->reportFinished();
" }/ H+ D6 f/ B* W0 x return;: K$ h( Z7 T# Y, B5 ]) _4 ^
}$ I; f6 c% Q) G7 E* n+ m
this->runFunctor();+ ~1 ~' f5 a- k$ V
this->reportFinished();2 @; v5 b0 r; y! Z6 B
}! Q% F% b) H; a! C, U
};9 T) C% @4 ^# V- S! v7 N
5 R( p3 {( x/ M( y$ O
} //namespace QtConcurrent
2 i o% V# }+ u4 m- F& Q: |. ?# V7 D# }
#endif //qdoc* W7 e' Y, G9 c. M+ u, S, D
2 [3 ^: w4 J0 V6 o- ~) t$ k, dQT_END_NAMESPACE
1 o# O N$ o4 r6 t" jQT_END_HEADER6 O) h4 p* \2 I5 y4 B/ V
% s. n. ?7 h" t9 Q+ S2 V9 P. z
#endif // QT_NO_CONCURRENT" H, I {, h! F
7 j1 a$ y$ z4 A# w/ O$ f9 ?
#endif" q! }2 O# N( x6 A
! f% u D" U" F/ i- \ |
|