|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- ?7 z+ m* }: b
/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 z/ d8 ~8 x5 M: S* G( w' q8 `8 [
这个头文件内容如下:
, P9 g+ |4 n0 C/ s1 x& k+ [#ifndef QTCONCURRENT_RUNBASE_H& u0 z# h3 A1 L, a R: ~' h
#define QTCONCURRENT_RUNBASE_H
$ m( r& d, i _) ?2 S+ z6 V/ f7 V1 _% m' D1 X
#include <QtCore/qglobal.h>1 ~* Q. f- D' z- ]/ N) ?6 A
- f2 j' ~; N/ ?8 L6 K, G#ifndef QT_NO_CONCURRENT
* O a% H. \+ O
, u% G. Z. l! A5 a3 z1 n* J: f#include <QtCore/qfuture.h>
! ^ I3 V) _2 l& [9 D! r#include <QtCore/qrunnable.h>$ z9 [1 o2 X6 R+ v; k
#include <QtCore/qthreadpool.h>
& r* k2 ~, _/ ^9 f4 z4 Q4 i& [. f/ e; b" H
QT_BEGIN_HEADER1 [, J/ z# R+ V1 J8 O
QT_BEGIN_NAMESPACE( ^- ~7 D2 B/ L; v5 G
% X, G `3 N& BQT_MODULE(Core)8 l( }1 l! h7 q1 ~
) F: |# A5 I' u
#ifndef qdoc
4 V8 B* p; i$ r; D4 ^$ b, B
- \" E9 e9 q) n* E; k: }namespace QtConcurrent {2 d/ G1 O l3 f* X
6 D C- L$ Z- v/ u3 |
template <typename T>
) h) D) T- _. {. Y/ p) Ystruct SelectSpecialization
& I8 S2 ?; |: u: K! ~: g{
/ o7 Z4 n7 `1 B8 C template <class Normal, class Void>
+ b" w6 I4 p6 _. I- D/ T; G5 l struct Type { typedef Normal type; };% z9 ]3 n6 h T8 W- w* C
};
- `1 J% c; _7 s: g% v1 Z, P( B$ q, Q2 y% q
template <>
/ R. D% k! r- Y& h5 Ostruct SelectSpecialization<void># `$ Y/ w# v( L% {- _1 f' @
{
# T' j" b8 j1 a) [ template <class Normal, class Void>' N7 W; F$ o* w! V! \; J7 V
struct Type { typedef Void type; };# M$ k' r$ e( x( F+ r
};
# t/ S. E4 C4 F- H7 Z
; s' \. Z [5 r6 e9 Ztemplate <typename T>
* \) V. w1 X+ x1 \" ]% Uclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
" z9 v' ^- N! h{% F/ X3 y/ Q/ o3 V6 m) J
public:
C8 @$ P" r6 i QFuture<T> start()
6 X/ B/ }# m) t- j" E( e6 _& z9 n* G {
$ S3 | E0 x A# \) v- i, K. ]8 n this->setRunnable(this);
* c# S4 b8 j4 a this->reportStarted();
' {- L0 s& R" y2 Z/ C+ [' y QFuture<T> future = this->future();' J% W4 ^: v* \/ ~& ?
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
- W) f' W; G- p, c m, \: l return future;
8 }2 ?+ V0 T6 S3 a8 i+ D } W2 r: r. V5 o* f$ y$ h. C' `
$ ^7 ? [7 C+ i- C8 G0 D
void run() {}
8 h. ?' [) |0 D0 |7 U" B: Z! R) V2 R virtual void runFunctor() = 0;
7 y8 O; O/ z) N' ^& Y1 F% d};
0 N# V* V- Q4 X# Y! M4 {/ _; r1 u2 K |, N, U+ c! y) S5 o
template <typename T>( K0 Z9 I# c5 L8 n' F8 {
class RunFunctionTask : public RunFunctionTaskBase<T>- L* I; E0 y/ Q4 [' `
{& H/ y' ?; ^/ O& v: ?- i Z
public:
% ?4 ~4 O* ^2 W% E void run()( Y1 j& P, D/ e$ E
{
8 g- H6 l- y" c8 K if (this->isCanceled()) { t5 }/ j0 a1 Q5 N
this->reportFinished();
8 `; L- { j: I, ~8 f- r0 x return;
0 b4 x( w8 t4 D0 i- z/ M }1 p! F( `6 }/ l9 P) R. m1 M% D& q
this->runFunctor();6 | y5 F/ v+ J9 x3 V. h! v, x
this->reportResult(result);) h* `; D# q+ s& M2 L0 x
this->reportFinished();
) }3 a0 T+ n# T9 J$ o }. W/ W& i/ X8 k9 C
T result;
1 _. u) S* ]! S% s0 c1 \};
4 l V7 T- S8 n" a0 } i: C: s0 C: V# E6 f* z. a; l
template <>
# [4 r4 \% w q( ]. R# Fclass RunFunctionTask<void> : public RunFunctionTaskBase<void># N+ |" K) ?5 t) c
{
& y7 n0 J8 T. U+ M4 vpublic:
- u% L7 `2 i i void run()1 j9 N6 p/ f2 _; V8 ]
{& J3 P; k8 _1 d$ J/ D- @
if (this->isCanceled()) {
/ ~ F. j: @5 Z2 S1 _) e7 C& x this->reportFinished();
. y# y$ K* p1 o9 H+ _+ w3 L" \' T return;" r/ a( n. f8 o
}
+ b2 a, H5 ?) D! z& g; U this->runFunctor();
2 v |5 W+ w0 y1 }$ B) f( M this->reportFinished();3 J8 J* n5 P/ k
}1 C! g3 r6 ]# Z
};- B& ?& O; u* P: j
- a7 ?2 M% O- v% ?0 {# [/ c" D2 O} //namespace QtConcurrent
A; E# m1 f9 `8 D y+ b
. j# i4 e4 V- F( O: y#endif //qdoc9 x) m1 _ g0 v; F9 u" Z
, r6 P9 {0 S" [% WQT_END_NAMESPACE# T5 a% W+ F$ ~4 ]) y
QT_END_HEADER$ p, \( M* n7 T: D# t; b
( s) V/ `, m4 @1 w3 y3 p0 V8 P' m
#endif // QT_NO_CONCURRENT
+ B$ x5 z1 ^9 H, U- P9 T! Z1 t+ C5 f8 ?
#endif) ]) `0 G- C4 i: D/ { o$ R$ t
# i" p: q6 F) \ |
|