|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" d* B0 F [, K& ~
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
7 S; ]: R |/ b9 j1 D+ n9 F+ w% ]% S4 K# X' _3 p
这个头文件内容如下:
( [- s/ y- y c. l9 {" m: C#ifndef QTCONCURRENT_RUNBASE_H
9 y- c7 I/ P: O/ I+ W#define QTCONCURRENT_RUNBASE_H: B; K. j7 v9 _. E' e- h9 j, R
# y9 w: x- O C! S+ E
#include <QtCore/qglobal.h>
# o, b F/ l! u3 b: P1 `1 _7 o5 t S1 v( F) l
#ifndef QT_NO_CONCURRENT7 P5 k% ?7 C7 x4 W
% i5 e% O# ^) t* _2 |0 a
#include <QtCore/qfuture.h>
4 ]8 R" W9 {. M1 S& H#include <QtCore/qrunnable.h>
8 n' C% U4 `5 g" X#include <QtCore/qthreadpool.h>
/ a: x6 D- ?/ ~$ O8 Q1 |, p* e: v. g3 ?4 n
QT_BEGIN_HEADER4 h7 T4 J# Q) M, z+ v3 A/ G# N' t9 u
QT_BEGIN_NAMESPACE/ ~4 J+ B B" C
: R7 b6 w. J9 B, |* a
QT_MODULE(Core)
& `- Q9 I3 Z, ~" q& ?! w
2 A2 p" p6 c% b; b" z6 ]#ifndef qdoc! j& p( W2 ]# j3 q! H: x4 ]
/ g! f0 b4 i& {1 M7 P; d D) R5 T) Bnamespace QtConcurrent {
2 I5 w; O# _6 V* _/ @8 f
, E) M2 R1 |; I+ g5 m' ?* u' etemplate <typename T># K6 R3 n4 P* |' i5 k; V
struct SelectSpecialization! s3 U# F* E' f
{
. i5 m6 o. A/ O/ ?% J- v template <class Normal, class Void>; I+ t! D" m$ }" ?# w, N" b
struct Type { typedef Normal type; };
6 i; l$ I% b# o" v; I};- t$ r; O4 I! A8 ]3 \+ z: m4 I
+ k ~/ e/ A `: O" A \" stemplate <>% I: F. d6 \8 d* T6 ^
struct SelectSpecialization<void>. l1 h) @: M& O9 o. Y# T9 a9 p
{ d! [# [/ y' L; ~9 ]- |; E9 y: u/ u; X
template <class Normal, class Void>
! D1 O" V) P; U9 d. q9 b struct Type { typedef Void type; };7 a8 ?8 w: N5 }& I& n2 W% G% Y$ _ g
};0 t/ p$ i" |$ k' R2 B7 L) l4 @
% A, H0 @; d# Z Gtemplate <typename T>
5 S- P5 E/ A9 fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ p* B" E1 W: k6 |3 j, b/ |{ [' U3 @1 q2 C: ~
public:
2 O1 d& O3 T Q. o0 N QFuture<T> start()
@+ S% Z) o1 C2 b {- `; T: d0 w" ?# y) E* d
this->setRunnable(this);: }& \) R8 ^/ w8 I; q- j! T: _
this->reportStarted();, a. {0 |/ ~% d3 \. _0 ?1 p8 I
QFuture<T> future = this->future();
r, H$ d! {5 ~5 C QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); }4 K) n+ s* \2 y5 R0 {
return future;
- ~- O/ e) ^/ i* D% I6 M' U! F% ~ }/ K( i% P" f! _
2 i& ` O5 [ H0 t1 ^: s
void run() {}3 W* m( R) F; m6 C- X- w2 h5 Z
virtual void runFunctor() = 0;
$ T( I/ P e) u/ Q};
6 j8 e; `* ?, a5 B4 c, o- ~: H1 O2 J8 {9 F7 |1 E! P
template <typename T>& U: A; s; s4 D
class RunFunctionTask : public RunFunctionTaskBase<T>( G8 @7 y$ W/ h
{
# b+ B/ U I$ U L& N' y0 qpublic:
, L( X0 Y0 r: |5 Q void run()
2 h6 |, c' X% R1 k! c7 x( z! H {4 K9 m& u2 R# x7 h
if (this->isCanceled()) {7 T" F- ~9 D {( _( ]5 \
this->reportFinished();
/ @% `/ P" F7 g: x) d# { return;5 T! m, `% w3 }# a, J( z) M
}8 a8 G% F. V0 L* u
this->runFunctor();" a* t1 J% Z! O3 H+ s- o
this->reportResult(result);) x! f0 z7 A5 ~3 u4 X9 H" r6 U9 K
this->reportFinished();
& m8 z. V- }: o8 `0 g( g5 n }
. I6 E, m" [; t. F+ U+ | T result;* p, K, @8 H6 O# b7 E1 U
};
8 @2 K" D+ |( B, {1 {
% O# L& U& h; x; Q3 otemplate <>
1 d; O6 |/ u9 A+ I$ Yclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
! C0 V3 j) ]/ T) `8 Z6 @; ~6 o{
9 l5 k. O# K8 R6 o" [' t% cpublic:8 ^' `2 s4 {8 R' d
void run()5 J3 x' q. `' ^+ I
{
2 h% I4 G- E8 `6 @9 C8 w- I if (this->isCanceled()) {
+ J1 f7 E R, n3 i K9 d5 B6 { this->reportFinished();1 ^ G5 O/ J: A4 l) z& r
return;
" w: d6 @% H2 O# I( K) v }9 n2 s+ l+ l: G* T9 J/ _3 a# o, `- q$ M
this->runFunctor();
$ }/ }8 ~1 K. U/ i! ` this->reportFinished();
( N4 @3 v ]+ u! e, Y p }
3 [" v+ \) x; A G; H};
* ?$ m/ M/ l! h! @
9 w; `! l% L, b% q6 ^} //namespace QtConcurrent: u& T# f! {, p2 x
5 ]% N# i' D: p+ `% [- b2 E4 R
#endif //qdoc
; ]* ]6 K6 H$ |0 h( l
, g- J' h- m/ k' y o3 {7 LQT_END_NAMESPACE
) C$ A$ K2 H* K) Q9 P+ M1 z5 FQT_END_HEADER
1 |( Z( y, h3 F& M% h& X& p6 W. y U1 s2 N0 ], A
#endif // QT_NO_CONCURRENT
0 k) E7 H" s" N( m, j. l9 u# C& J6 {: p$ Q- y2 J
#endif- x4 ^2 S# U, Z H Z0 \
/ e9 X* m" j9 y$ ~8 a- j; ?
|
|