|
|
我对syslink进行交叉编译到arm,但是出现如下错误:/ U2 E3 A3 A3 B2 t5 a, p- j3 w9 H5 j$ u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% b* D2 ] E' ^5 V
4 e* J1 j) A+ r( r8 n
这个头文件内容如下: X+ U( c' Z) i& |, [
#ifndef QTCONCURRENT_RUNBASE_H
5 ?' z/ A- ?" L#define QTCONCURRENT_RUNBASE_H) c0 a! x* F+ W. l
' B; k6 {# [3 ~; d% e4 k: P#include <QtCore/qglobal.h>, ~- U% ~" y! R. U5 p6 P) ~
4 p/ x2 S& i) p6 |#ifndef QT_NO_CONCURRENT
- M3 t9 F% Y& o4 V, V2 j% D0 k# w( Q _# S7 t/ ^4 w' R5 m6 C
#include <QtCore/qfuture.h>! I3 k7 C3 m' ~ k. P- C$ }- j/ H
#include <QtCore/qrunnable.h>* C3 q' J+ M/ b, P5 F' a h) q' z
#include <QtCore/qthreadpool.h>$ z7 J+ G- G4 i& j0 j7 {
7 n' u/ C5 f) S5 c6 m( T; kQT_BEGIN_HEADER) P* R8 {+ L; b' s+ S W
QT_BEGIN_NAMESPACE
* u* Z- A0 w: I! w. W3 W2 l5 d2 `) R3 \* g' Z* ^
QT_MODULE(Core)' l% H( O+ K3 t. o( y
+ a( c0 k' g( N" ^#ifndef qdoc$ ?4 i, X, ~1 `# r
) {0 n$ D6 c( o; K, s9 m, p
namespace QtConcurrent {# u1 R n) c2 u' I* T3 m
9 J6 Y4 \: @" U, ?- V& u: Q3 Q% rtemplate <typename T>( N6 V/ F; R8 d* q$ u
struct SelectSpecialization) G4 ^% {' {4 ^' U
{
* M) B9 q2 j6 H template <class Normal, class Void>: M# E' N! m9 i( \6 s# _9 i, g6 _
struct Type { typedef Normal type; };: a4 b4 q- F4 Q& D U" f
};% c) o- p' C" [
" M. F: m' f- s( c2 l8 S9 p7 L' ^
template <>
+ l9 W: {( ?& \& p7 g; Zstruct SelectSpecialization<void>
) a0 L8 |% P8 k P{
/ O7 ]& o% O# e( Z template <class Normal, class Void>0 a( U0 g6 |, N
struct Type { typedef Void type; };( ]6 d- A! e1 m/ u" @' e
};
6 f! l u! U, Z g& i; _% W) p5 {) X: q3 p% U5 w+ c Z
template <typename T>
# S' K& z- c) K# `4 rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
$ Y' Z' [. f; \3 \2 ]& R! l' y0 u{
) t" H2 ~; c, x Y- m) jpublic:
" x0 o" z' d Y; U+ X6 u QFuture<T> start()7 k' Q8 R1 U' S s3 S
{
! {. t' g$ ^. Y, R* P this->setRunnable(this);
5 l% l6 ]% C% l5 ]$ M3 c$ r this->reportStarted();
. C/ a( g& Q9 L2 G3 S- ~ QFuture<T> future = this->future();
# `' }0 j+ n7 ]" {- o QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, q# E( m) O, x$ b return future;
: Z8 \6 ^7 Y. |! P; V }
U7 M& {! u; @1 k
8 Z9 Z) K1 d- l% C void run() {}0 |+ R% }6 u* Z# N7 [1 D# t
virtual void runFunctor() = 0;
# Y s3 }9 _. `9 P3 q! K};
9 ^* h* f# E3 L5 j+ ]5 v. F! ]8 v( E7 D9 l e, p! v' ?
template <typename T>
* @. \& o# D4 o& S x9 i& t9 Wclass RunFunctionTask : public RunFunctionTaskBase<T>9 z$ _6 H# c1 Y, Y% r
{% G& }- q+ a5 W
public:
" m# ~: R4 K8 q: x5 m void run()" T, L$ _/ m9 v* a. v, u+ @
{% q+ o* i z2 s
if (this->isCanceled()) {3 X& s9 _$ d! u
this->reportFinished();) F( D% N' i F% |+ a
return;( F5 a* J% [/ _8 f& i* M
}
# N' s6 E0 a5 K" Y( T0 g9 Q! A this->runFunctor();1 P0 |2 O8 a U1 C
this->reportResult(result);+ t% m' }9 l# e- E w, G- g
this->reportFinished();* n# }$ [( k) o+ p+ e8 X4 d
}! W/ R" t0 |6 c* k
T result;
8 w( `% F4 w& v B4 s! d8 C3 e};6 A0 @% g# m+ Z- o- B( T
2 v( q; |# @2 b5 K! ^$ }
template <>- \. B9 V2 i3 E3 ~4 l/ T* x X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>9 V) G+ w t! {
{
+ G$ r T- C v9 @- Ipublic:
0 N9 r& }! h5 Q; m% U" _. z void run()
( Q- b# k6 f. z9 k/ p# ` {
. y T( `, q& J3 e$ n* n* V if (this->isCanceled()) {
9 m s+ W+ [$ y) O+ \- r5 H3 d this->reportFinished();
, x. Z& G; U' h: \9 n return;; `, y0 }: O' l9 y& g. {7 G
}
& |; {- Y$ k3 c& ]0 E this->runFunctor();
% n5 r9 D% C0 f3 @ Z this->reportFinished();
' _1 |5 t- `2 I+ y }
$ s, k, T; m" Y};
& ]/ m2 X1 L& a5 r+ N
6 o; H* V, u; ~4 U/ f, E ^} //namespace QtConcurrent
/ `5 f# ~, |) W3 c# V" H/ \/ Q+ s7 X8 Y
#endif //qdoc6 R5 l2 C4 a0 t1 t* R" q! o/ f% J9 F
9 q) ~: q& ]8 j2 f9 A9 \QT_END_NAMESPACE
1 t: J& h9 s2 ZQT_END_HEADER3 r! }5 K! w! C0 R* q% p9 u
u# u+ a7 Y$ k7 N#endif // QT_NO_CONCURRENT
* `4 f; M4 e3 I+ H) r& L& t5 j" Q3 m8 i$ i: o0 C! B: H! x
#endif2 f) u2 e% x$ c# {" U
_. M" ~8 e3 s! O* \# G L/ Z! X |
|