|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 ? r7 i# u5 B1 s. \/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'. S& [/ g9 N3 K$ G. y. H
5 }9 x, U" F2 p+ N3 m& c+ F. U2 D) E+ W这个头文件内容如下:
# i" ] w) E/ Z3 O' b5 ~#ifndef QTCONCURRENT_RUNBASE_H
a) \1 p. l1 j$ `0 z#define QTCONCURRENT_RUNBASE_H) a0 p" Z `+ H7 f, \1 F% o
& k/ h# D9 D8 W$ W
#include <QtCore/qglobal.h>8 ^8 N9 x$ F* `
& ~$ e0 B* N; [#ifndef QT_NO_CONCURRENT
v0 [0 C3 k3 m* V1 o1 }2 u
* I. [1 q: F, X, i) V#include <QtCore/qfuture.h>
. a7 q# S. G( K" k9 k#include <QtCore/qrunnable.h>: ]0 }9 P6 a5 y/ r! ]2 e' T
#include <QtCore/qthreadpool.h>
4 R2 B$ n& ?9 Q/ ^7 p6 r& H+ C( `% F$ H5 \- n
QT_BEGIN_HEADER
+ Q6 _, d, F( B; [" ?, U& vQT_BEGIN_NAMESPACE
9 r" o* ~+ F- y% H( f( A5 j! n8 {' K5 H
QT_MODULE(Core)! z$ L7 h+ R* c
{9 a$ O v. v) f9 q
#ifndef qdoc+ \8 X, a9 P8 S- \: u8 Q& z y
1 t$ C5 A# ^/ n& M3 lnamespace QtConcurrent {
/ z" B: `" R% Z
4 M, @1 U0 `/ @; b9 B, Ltemplate <typename T>
5 n- G5 u6 h9 b, n: Mstruct SelectSpecialization9 R. Z: a: c) v5 q) P* M' X+ B3 {
{6 Z. \# o0 @" p, t$ q: g
template <class Normal, class Void>! w/ ?% |1 m! @
struct Type { typedef Normal type; };
+ M7 i, Q1 Y/ Q" Y8 A2 a5 @};# [2 Q* g; Z. f( U- T l; ~2 \. w
1 `& m+ A" H& O4 ^& ptemplate <>8 ]2 y( d( v [' J1 u! K2 C
struct SelectSpecialization<void>/ j1 Q: [# i9 O3 }+ o( Q5 D$ R3 W
{
+ [3 @. S8 C' g% q template <class Normal, class Void>+ }! S8 h2 o: ]8 N z6 _7 m
struct Type { typedef Void type; };+ |, m4 A! g; L
};- d* L F& R( ? D% O% W
" l" o, T2 l5 ?4 k0 n- Y
template <typename T>
8 s( _/ @4 }* P- V6 G9 M3 Y6 U0 k/ W4 zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable) f$ ?6 y) f( O3 q7 M
{* h) ~6 u- Z# n' L+ F* z; Z! E4 X
public:3 ?# @( B) d6 Y7 Q3 b$ O* h
QFuture<T> start()
2 s5 M+ m* j1 R$ Y' J0 L' ~ {
4 n @' D6 P: ]# x this->setRunnable(this);
/ y! Z! h7 n8 w u this->reportStarted();. j6 l5 [2 s! `
QFuture<T> future = this->future();9 B/ ~5 s# Q2 o0 S1 @$ j& h
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
/ f$ E1 E$ i* v+ d return future;* b7 m4 K6 C3 }8 q8 N" m& M+ A. {/ t
}7 L2 o5 b; v5 H. ^. L) k
/ o' d" w/ e9 e( D6 ?
void run() {}
# K D- M1 g. @$ a; m! V virtual void runFunctor() = 0;' W' d- J( k5 D1 Y
};
: A' ^( ]& k) g0 T3 K" f
* \5 }/ B! ~- T0 b% t) ltemplate <typename T>7 @, a. ^' L4 z- c# @
class RunFunctionTask : public RunFunctionTaskBase<T>! }7 R' y" G# A! V( u" z
{
) k- T) c4 C2 e( j) opublic:) S( q. W" {; T' g# i1 r0 S
void run()- N0 b: m2 J$ O% Q+ t- x
{( Y# }7 X }, |% q; h
if (this->isCanceled()) {4 x$ A$ ~1 Y% }! `7 ]) Q; F
this->reportFinished();2 N& ^/ W& I1 d0 s( \6 T8 _- D; B
return;* X) x" T% b# i) c
}
: Z0 }- m7 l/ N this->runFunctor();- n5 a; p4 _( e, f, A0 g( s* o
this->reportResult(result);
, S1 a/ c7 b3 i3 L- \ this->reportFinished();
& c1 W% A/ Z8 N( t- o! K; ~/ V }9 N5 [* {' B' p6 H# i& i( `
T result;6 \, }8 C. a9 g' A" n/ ~# }
}; N# B' X1 m5 O6 j5 Q& x" N- Y
. X6 }4 y) N1 D0 B* @. V8 N8 h
template <>
( Q* B7 }) U# D, Cclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
- {3 u5 n0 d* {! w- V) W' P{7 E: |/ p2 v! r
public:) |% k+ v0 H1 N' I& g
void run()
3 t1 F6 _: y, p4 o, `+ ]. h {
0 L! D0 q2 k9 S* R4 h% d if (this->isCanceled()) {5 ?% w+ H& k7 E! Y
this->reportFinished();3 P6 C5 D$ X) O7 t" B3 j; T
return;. K$ F% n* G' N, H- P
}6 J# L; ^; Y8 w* G3 U' C. u# X
this->runFunctor();! s% [3 r* T9 i, m# c4 R4 k
this->reportFinished();2 ^/ I; S) P% E5 R
}
8 `$ X9 {2 O& V, K# _. ^ T};
! L9 M% c7 a* u; d% @% B+ `- v; u( ~; C8 I) @
} //namespace QtConcurrent
+ O. O: f- r9 F5 A4 j: }* P" L" O( w) w/ |
#endif //qdoc
/ V$ R7 L6 K8 o
. \( M! D) m/ ^* y" o k: rQT_END_NAMESPACE
5 t- c/ x% ]% `6 zQT_END_HEADER
) M+ C k1 _/ R: Y$ L6 w! Y7 D0 V6 h5 a1 P S
#endif // QT_NO_CONCURRENT( n: v3 x) G( L
# Z6 H) T2 P) f#endif
$ a5 u) d2 Q3 I( M/ C; a7 _& U' Q. u ]! u' {- [- J2 y
|
|