|
|
我对syslink进行交叉编译到arm,但是出现如下错误:7 ~3 z! y$ n7 A2 K+ P
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
; z4 G6 w+ Z) G/ M7 X5 H
8 n: z0 z- G! i% T% J/ C这个头文件内容如下:
7 ?9 y7 H' f. w; ^#ifndef QTCONCURRENT_RUNBASE_H
8 L- D& I5 a6 M) F#define QTCONCURRENT_RUNBASE_H- R# C; O- v M5 w V7 h
6 o" r1 Q* Q3 g' V4 f* F#include <QtCore/qglobal.h>
7 [$ u: m) n2 U! T( U4 k9 y) t, T) z: c# O- p3 n" x; w2 m
#ifndef QT_NO_CONCURRENT& ]7 ], k3 Z2 G% m% ]7 g8 N! l& v
+ v0 z1 o( d i* J5 B. d#include <QtCore/qfuture.h>
8 Q1 o* l$ g5 }- P; q#include <QtCore/qrunnable.h>
0 ^) _- a. Z; t3 {/ Y#include <QtCore/qthreadpool.h>
7 W' \" K* W5 ^' M# r
* y$ b8 Y4 F7 l( b/ MQT_BEGIN_HEADER
8 O' _0 Y5 O6 r0 I6 \4 A2 yQT_BEGIN_NAMESPACE& H3 }5 X( z. @6 V6 ^" _
3 @( c; @1 l1 Y: G
QT_MODULE(Core)
0 N# Y/ L0 n& J! z: h- n5 {" i6 f- @7 i' k; r
#ifndef qdoc7 @+ f8 s6 [. r7 [ U, y1 n Z
/ `# k8 @+ y. b# x- z3 |) ?namespace QtConcurrent {8 v8 }2 }, v4 O l: J" t2 b! G
1 K, s% u1 ]+ K
template <typename T>' y) T' i0 L$ u& [, K
struct SelectSpecialization* r1 J# x8 }/ C2 ^; Q5 K3 T7 }
{6 h* O, C- b a+ I$ D
template <class Normal, class Void>. J6 S5 s; q# z* f# _
struct Type { typedef Normal type; };& C0 b" h8 U! Y# y
};$ z+ d/ V8 J. `
( v* Z( P; A) ~% n5 ?# stemplate <>5 d( H: G/ D7 ^# S1 ]3 D" g
struct SelectSpecialization<void>: |$ z$ O5 m# W) j& k& e
{+ P5 ]. w9 P) t5 q& r! Z; |) y5 R
template <class Normal, class Void>
; M8 Y* f+ d# G struct Type { typedef Void type; };5 U; |# h) _4 w$ x: |* `
};$ K; F, A7 X* \* z
% l1 r3 |, n. e4 X; C, Ntemplate <typename T>) W+ _( t: r7 m) v' L( n1 v1 d
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
* _) L& C. }2 j' i& q" H/ j{* r. k2 S- |# [! ]. e
public:1 i" `6 w' y1 u" }) m6 v1 D% _0 O
QFuture<T> start()
$ r0 {& U" b; i- V! L" y' T {
* w0 F$ p! n* ?% ]% |% m* q this->setRunnable(this);
~! k9 [- X0 f# N! d4 t$ ? this->reportStarted();
3 R |, t% A+ f! f `3 F QFuture<T> future = this->future();5 u m0 {; V5 ]7 V! v; r* g1 }/ A
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
- \1 m; c: y% c6 g' `1 P0 }. i return future;
0 n# s2 }- X' P: W! k }
' p* f, [/ n' {
7 _6 m; ?" d! U; ?, f6 G void run() {}
1 N. _) m+ A3 v4 F virtual void runFunctor() = 0;
) k$ r5 Z9 ?: M5 b};
5 v4 l0 {1 O' Z$ c/ |) r+ ~
$ [( W2 Q% Z, u- {9 G: ntemplate <typename T> k* ~! g5 h) u
class RunFunctionTask : public RunFunctionTaskBase<T>
* }' u5 |2 U* g7 C* S) q6 m, \- r1 [0 C{5 q5 Z2 p) V+ X6 }. Y
public:5 ]. R" x G) n! m7 r9 m5 b/ ~
void run()
: X- L/ i( u" O {
c% V2 A. |3 R ? if (this->isCanceled()) {* _. j! _) Z g0 E0 F/ W3 B0 F, \
this->reportFinished();
& C! d" K1 Y& R' I return;( \8 Z8 d' ^/ N2 ~* a1 c% q
}% x; W8 P# H" W3 s% M1 q
this->runFunctor();+ m& \; `* `: F4 L
this->reportResult(result);
7 z" a; o9 D: h6 f2 r+ x this->reportFinished();6 D- j$ a& }' {
}
1 }% x4 p7 J7 G2 f% }5 _7 [ T result;1 Q/ U2 _0 j# C0 D! E: K
};) g! n% R8 E& Y
8 b6 {4 t3 q" a7 stemplate <>7 s/ j6 }+ g, Y+ N4 ]& E
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
3 A' h8 U) D5 M: z$ E{
$ Q- _: t' c6 t0 [. p6 Bpublic:
9 Y" I# l+ H' G void run()" z; G8 }! E; R* H& F
{7 F6 z: a/ y. \/ D2 m- i) D
if (this->isCanceled()) {# l( w- u, I2 ~) z8 d; X1 r
this->reportFinished();
4 y1 f) \$ U+ `; N$ Q return;1 J" j% ~" S. n: L. e* [/ ?; C! {
}
2 u' V- M3 i- U: D" {& D5 ` this->runFunctor();
. W$ d" y9 U8 a# h this->reportFinished();7 C7 M5 o3 A& y; W3 l. I
}
* o4 R! z! v+ F- q5 U: Q};
4 d1 Z8 x/ M/ |3 I o1 {$ u8 }( G6 j, h+ q# k8 m
} //namespace QtConcurrent
) l( S% j5 {5 B# w- x; v
) w5 E6 R" }* P#endif //qdoc, N" `: s0 ]# v0 y0 A& J' ^
( Y; O: ~0 e2 y
QT_END_NAMESPACE& J$ [. y5 R% p" @6 C% S- B
QT_END_HEADER+ h: h# p5 p H$ ~ X# z
- J0 }& I, }2 L" b
#endif // QT_NO_CONCURRENT; q4 h* A: |9 H! O
0 o! E8 m9 a1 v" z9 O
#endif
7 U: ?9 Q$ }5 O& h% q4 F' I/ r: `: l" [7 N% Y, n; |
|
|