|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" Q5 v0 y5 b/ l; x, n3 z/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- m+ e) r4 h+ D8 K
( L* x/ _# u1 e/ `. E
这个头文件内容如下:
8 a9 P+ C J7 m P, k2 q# I#ifndef QTCONCURRENT_RUNBASE_H' k, e& T& J7 u4 @" n5 h& D
#define QTCONCURRENT_RUNBASE_H9 B) j2 ~6 R. |2 i! U1 y+ K3 `
0 @. V) j* {9 B, I" ]+ ~2 a#include <QtCore/qglobal.h># p: ]. }! z8 b$ P s% l2 a
" T5 |1 T' e) r7 E4 f
#ifndef QT_NO_CONCURRENT
% [7 v+ K2 a3 w& l7 k
, ?/ {. }- ~" x4 o5 Q#include <QtCore/qfuture.h>
, O: F! i+ H0 A#include <QtCore/qrunnable.h>* z" o; |& U% B
#include <QtCore/qthreadpool.h>
# m; }/ m: N* @# R# f `
' w: G$ c. `; Y$ Z; E1 {QT_BEGIN_HEADER
+ K( ^" V8 D& d( r, v9 c% i, kQT_BEGIN_NAMESPACE
! _/ r6 M6 R) g* S* @9 |% y
: `8 L! T+ h1 j" A; u& TQT_MODULE(Core)# o1 @. M$ b$ X1 q/ p1 i- s
. z8 g5 a3 n% X, S0 U6 b8 d' K
#ifndef qdoc
. Y U* Y6 Z, [ n* P
2 _6 k. l t$ ?' I+ u! A; `namespace QtConcurrent {
" |8 I( f, g ]% D1 j
) y! o0 ` P8 p8 J3 ktemplate <typename T>
* |: \" c; E- n' ^( E$ C6 F7 bstruct SelectSpecialization
% u$ r( }, h: G; V6 b6 U: L: d5 F# D{ @2 ^. o: C. j, A
template <class Normal, class Void>
# c$ S9 u: ^! X) m; |4 L struct Type { typedef Normal type; };) x) Q* j# I0 F* y3 u1 H/ R
};
1 X8 O! R; m# i& o' t F0 o3 w7 W" {& S# `! [5 b4 ~- {1 ] A0 h+ c
template <>) M Q# Z. p# n* t
struct SelectSpecialization<void>
9 L7 f4 i( g3 t5 w) L" v% s{
; B/ p5 w1 n0 L( ^8 x2 L template <class Normal, class Void>
$ e0 B: ~% |; Y$ N struct Type { typedef Void type; };" O, M# k8 X6 {9 j8 E
};* p6 }# y$ `6 ^' @" M
( e/ |- K! a) u* m0 s- |7 v2 @template <typename T>+ M) Q; Q4 v8 t6 b1 T( x
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: A" q; g1 ^( x{
" V" m' |" ~" Epublic:! u4 s1 ?. G2 k" @+ u; G
QFuture<T> start()0 d8 t7 p: N* ?$ M8 }/ u/ W$ \! L
{
. u. g# Y9 Z A& p3 e this->setRunnable(this);
1 n0 }* }& }: M7 \ this->reportStarted();
1 b; @" F8 Q/ K+ f2 t QFuture<T> future = this->future();3 l4 `4 o& V( g6 u% h% } d3 L
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
5 s. l6 Y8 Y, d* F6 p6 ]7 B6 S1 Y return future;
" K* r# ^2 {# b0 ]$ Y$ o* Q# K }
4 d* [6 g5 k* ]9 c3 Z
8 i& \6 j" u6 y& q* b0 ^ void run() {}
~3 k& @4 }* E# t virtual void runFunctor() = 0;3 T! b+ @, `8 J$ ]6 L% r9 ~# h
};
5 r% ?: {2 r. x( `
# M" f6 N3 s$ b! l0 r8 Ftemplate <typename T>
" p q) J: S+ }- o. Eclass RunFunctionTask : public RunFunctionTaskBase<T>
" i8 E4 B3 F8 z \/ n( @7 S! b0 g4 t6 n{8 x* a( [7 F8 i3 c; u s
public:5 P3 F" k3 e$ j7 x* h4 t3 ~
void run()$ v1 @% C# a- \) l# c* \, S2 g
{
" f* X: J# n+ K+ f if (this->isCanceled()) {
7 K3 @; i" ?# b6 p- r! S" W! U this->reportFinished();# J9 O3 @3 \2 K/ D1 V( a) h
return;- ]: ^ ]# [9 l
}% w2 L' ?2 ^! h6 N5 F) h7 L
this->runFunctor();) I. |" k0 ~, o1 P9 D1 q
this->reportResult(result);/ i& A2 l. r" U2 h6 ~8 w+ ?, n
this->reportFinished();0 ^6 y* F$ v2 |- Z: J
}" g/ e( R2 Z+ c- ~2 Y% w" M
T result;0 X/ Y& ?0 H' p5 J/ X, V) V, Q
};
# R A7 I% F/ z* `( e9 T- B r8 c$ U: e1 ^5 V
template <>5 _1 _! l6 a( L7 x3 A
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 }+ X$ W9 {9 |9 o+ z6 q+ w4 z# H" c{6 G2 J' F5 O! }* y X
public:
6 Q5 u% k% |9 d6 K# C void run()2 p) u$ s* ~) p4 [! B5 f
{
6 L6 A7 O- @6 A# h2 ^1 R8 H if (this->isCanceled()) {1 K# l4 [& @# l; M4 d( s
this->reportFinished();. w/ Q6 s- p# `3 J4 i) F
return;
. N( e u" g g# i5 A0 S& M3 l }
: M; v$ p- }. X/ Y this->runFunctor();
; E6 F* e/ q( y/ I this->reportFinished();+ A& r# {( A; I. x" R0 }( t
}3 Q3 A+ M' _2 A
};
$ y/ ^; P+ Z* K1 h! g' N4 W: E0 b- b8 n. Z5 e
} //namespace QtConcurrent
, u0 i+ @, X# F. `' }, H' v
5 v2 G2 ~! Z0 M8 b2 a#endif //qdoc4 i( V- `! K: |; v
0 h+ D/ ^8 X# E4 BQT_END_NAMESPACE: }, `3 S4 H9 x( A; k
QT_END_HEADER
; y* E( P/ H7 [8 L$ Y- v3 G! O8 D F3 j6 T8 u) U8 B# o
#endif // QT_NO_CONCURRENT. Y \8 A. G1 a& [2 D* K/ u
" R7 h" n. ]7 g#endif: p* S, H q! s% _( R+ ?8 J, N
- h" H! X1 b8 J# N( u |
|