|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
6 _+ f: Z; C2 ?4 ~8 x$ |. @/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/ F3 B1 ~; h c* c, {/ z* K
& e3 R) K1 v1 \4 S, _9 N1 B- }4 {这个头文件内容如下:8 h" n( V% i$ u, b5 \( T' J
#ifndef QTCONCURRENT_RUNBASE_H6 w8 s0 D$ o2 v6 u9 `
#define QTCONCURRENT_RUNBASE_H0 B; Z5 @3 N& }, n5 p; {
; ]- O/ R m/ c/ Z- d: \#include <QtCore/qglobal.h>" t2 @1 |# n" H. P% g; ]
0 H: D/ P5 D8 b+ g" E#ifndef QT_NO_CONCURRENT
; B, S2 [0 t( \! X
5 M/ W; X& W( f( t ~% _; r#include <QtCore/qfuture.h>5 q* R4 P5 o( U$ T# ~
#include <QtCore/qrunnable.h>
0 W+ D* W2 k$ \* Q- T! N! t* \2 H: r#include <QtCore/qthreadpool.h>
" n5 V3 S2 _6 _& _: @! w9 `( f) h' b. [# |/ K7 r7 o
QT_BEGIN_HEADER
: ^; t/ e- G# DQT_BEGIN_NAMESPACE
6 u9 c3 l# D c- B; D8 o6 n
2 d/ \3 ^0 X8 h7 R, oQT_MODULE(Core)0 p2 A w1 I( U" s. M
) e0 P+ A: e# L( j" [" Q1 W9 x#ifndef qdoc! Z/ U* p \8 E" d0 Y
9 S) R4 L' J, y+ P+ @3 v. g
namespace QtConcurrent {7 d1 z1 n+ [+ O' X7 Q( ^2 i
# k, X% T1 R0 r3 T
template <typename T>
9 L3 q, v" g- K5 D$ k# y: g/ bstruct SelectSpecialization# l" V$ ]5 A4 |+ T6 O
{
& R* ?8 K1 `# k0 W& }2 L template <class Normal, class Void>+ d. L" w$ l- ]9 q8 |6 j3 H* A
struct Type { typedef Normal type; };6 C+ K! A8 h5 Y0 K8 W1 o" C- z. h* r
};! ]( {$ J. Q" q. R4 w. J4 A
( ~5 H; ^) l. e) ytemplate <>7 c, l8 j4 J& i, I4 ?$ O& I0 e
struct SelectSpecialization<void>" S5 t6 P3 g8 i: }) K P
{" f+ y! ?6 @6 E" x3 K3 H9 f
template <class Normal, class Void>
v3 k/ N! O3 m* S* D5 I3 R: }" p. F struct Type { typedef Void type; };8 J* M, _, v( a
};! y# ]( l4 v0 j5 U V6 M/ D
" v- f! {# \5 o; L: Ktemplate <typename T>1 g+ m" ^: h* D( l1 t
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable0 }: n5 s2 K+ L% ~$ E
{" n( `: W) @8 ^( k
public:
+ E& G1 O+ b, j o) }" X+ O- A QFuture<T> start()
A0 w: g7 ^; x5 F* g3 D {1 ]/ w9 a, a8 F
this->setRunnable(this);
2 l6 K1 V: s/ A" J this->reportStarted();
( ]) ]& u: n* R+ i. ] QFuture<T> future = this->future();
" O/ C7 @' X9 S( J. _ q QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* j# ]- n: e! M- i return future;$ ~0 d# z. b& E) f1 o( b
}
- Z& c: E. d6 R3 }; X- {/ F( S$ T8 |; j, ~; n/ w" J
void run() {}3 q: U1 b$ o- a5 g& x: ~) R
virtual void runFunctor() = 0;8 y: C8 x* y2 [9 l9 f
};
! C0 p9 f. i) G# [* E. e! N3 R3 u5 ?& E* ~
template <typename T>
* @3 G7 ?0 n' A9 l' [class RunFunctionTask : public RunFunctionTaskBase<T>5 x: D8 V9 \6 p) w. w1 _
{
) {! n: {- B0 U$ H. e& M( k, Hpublic:0 a* e- I1 U. ^$ `8 a( ~* q
void run()
4 q5 k3 I9 J* |% p {9 ~. `, W$ k" T q' ]
if (this->isCanceled()) {
& q2 A- ^ ]1 K% e this->reportFinished();$ j1 a& d+ G# A2 I
return;
$ h* j/ E! N5 v9 q( V }. _0 M S. i5 D
this->runFunctor();
3 T4 { U% s; s& G# b this->reportResult(result);
8 E. f, j4 k- V& k this->reportFinished();! n6 H& _# p0 u1 B9 R- b! Q
}0 g/ m5 L" B% B% p; W, j- ]
T result;
# t1 R: V6 S6 V# ]};8 p, ~ S! m9 j, M) w" o3 Y
% Z0 x* ]( X& _2 i" Gtemplate <>. P) \9 A8 g4 b+ r0 T% l
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
& \8 m: ~ ?: a- b |9 I5 T{
' _' [6 {* u: K5 I2 Q n1 `& J+ m0 tpublic:
0 ^! z% t! S/ i/ H( T void run()# T" k3 Q. e# L" x3 j
{1 C' }( b2 ~% v8 v
if (this->isCanceled()) {8 z- ]0 A( [; b& D/ t: F
this->reportFinished();7 W' F4 n' l( W$ [/ V9 }( F
return;. M9 }5 o# @$ |( H
}
" }' W% q/ n0 w" ^0 r this->runFunctor();
6 o! ~7 z) p$ k) C; B! S this->reportFinished();
# M4 N" ~7 _: z }
, }7 U- E8 U5 v1 y};* `+ h7 e( w! }' j0 y# S
) h6 e( w5 X6 F& F P3 w9 m L} //namespace QtConcurrent" S2 z0 n- x5 v4 `& U' w7 P4 O5 _
4 u9 T; _' f) ?- h& d. ` S#endif //qdoc
- Q. H" d [5 q$ e7 p9 k, B2 O' g3 b& F: M3 q) ]" S
QT_END_NAMESPACE8 E7 Z1 ]& y8 z3 d" L; O. X8 H
QT_END_HEADER
) p- R% @4 q4 q1 j, {- |9 r. K2 [' X% Z+ K2 D
#endif // QT_NO_CONCURRENT
' Z! M1 Q8 q$ a, l/ L+ q" Z/ U
; }& t% F1 Z; ?+ N+ G/ D#endif j& _4 G0 _# v5 z" H
6 @+ Q! A" W/ t9 ?* _- Q8 B; w |
|