|
|
我对syslink进行交叉编译到arm,但是出现如下错误:2 n8 _) Y! [9 h& K
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 q5 s! |: g' x% g: t- X
3 _4 [; j1 ~$ w; u1 I1 v5 y这个头文件内容如下:; _4 W6 U9 a0 m9 L0 E+ Z. T
#ifndef QTCONCURRENT_RUNBASE_H0 w+ h8 ]& c' m1 Y% r
#define QTCONCURRENT_RUNBASE_H
* i3 k- }, \2 w6 ?, K2 }2 a m: }- [1 d+ t; k$ D
#include <QtCore/qglobal.h>5 c' v7 H/ D0 Z$ W- a) m
5 e+ U7 y6 {6 {- L, ? v#ifndef QT_NO_CONCURRENT7 t$ a) i. O! |' q( p3 B
3 P3 q- M, s; v2 U! t2 q1 v, I
#include <QtCore/qfuture.h>5 D3 `" {4 J. t1 n S* k
#include <QtCore/qrunnable.h>% }3 h! _! G% }8 C" a z, R' w
#include <QtCore/qthreadpool.h>
! j a7 I# |# i T
, Q) v, g& q5 }0 _QT_BEGIN_HEADER
0 l2 w l+ s+ ~$ S" Z; sQT_BEGIN_NAMESPACE
' {9 m8 [' m2 q! C+ }! N. b( l- Y# R3 p" e% Q
QT_MODULE(Core)/ g. P$ d& x( O3 ~
- d; B9 Y: ]; V$ ?
#ifndef qdoc
6 i; ^8 m! T- x+ r! W8 N* i
; s n( T; Y+ R2 U* ynamespace QtConcurrent {
1 ?- D* v: t' k& O' h' O/ l3 x+ F5 g+ S3 U+ R2 B$ C/ D5 a4 h9 U
template <typename T>" m7 z- R# S( z# K- I
struct SelectSpecialization; l. X4 c' {/ o) X; Q
{; q6 H; F+ K( E9 D( n$ `- Y& h3 z
template <class Normal, class Void>/ L" Z% }! j7 T: C0 X; g
struct Type { typedef Normal type; };0 d- n2 b# I% a$ n& R2 q; S
};9 e5 u; D! \2 q, e; l
: q( `" \$ X% X! `% E* c
template <>$ i" B1 b# j5 m6 F) z
struct SelectSpecialization<void>9 F- F! E2 P) O9 Z
{ x8 G2 A$ t/ U& l% ^
template <class Normal, class Void>
+ O/ _) ?" V& e3 z( ^" V& _/ C struct Type { typedef Void type; };# v' K% ]/ {' d1 ]* Z
};7 ~8 j/ c* z E% ^$ F* R7 p% T
. V5 \1 R P* E3 ^; l7 e' }
template <typename T> x; R" n1 Z# E' d; a
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable9 o6 ~# b E7 s$ ^
{
1 o: ~4 d9 p0 D, Cpublic:8 t' S5 C, k1 X# Q: @ b$ J
QFuture<T> start()
2 o6 G s0 z. ?3 L/ j1 j$ e {
1 k9 I3 C6 |( G5 p/ K this->setRunnable(this); _* ^5 P, g) `
this->reportStarted();) }- Y5 o4 M: F$ f8 Z% G# r( w
QFuture<T> future = this->future();6 P" P$ a( ~4 I) a
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
! V8 ]8 E W* t3 l; x return future;
& Z) O. U9 o8 I8 w1 Z }
, V _0 F) K$ {
* M) @% }0 ~' D2 }& P3 D, ~) q void run() {}7 B4 M% e5 \" I# L G+ A9 h# ]* a) j
virtual void runFunctor() = 0;4 x4 i3 q" I7 s$ v8 z6 i: `0 e% d
};
6 I8 a3 K# c) R& O P# }, n, Q# {( _9 h7 V) V- z- Y
template <typename T>5 B9 \5 d o0 q; U
class RunFunctionTask : public RunFunctionTaskBase<T>
4 H4 |1 y; N% ?- I. ] J" X- I+ w{( C8 @: f& e$ }- P
public:0 r! s- c# Y& g0 M8 i
void run()) D) j0 h. k3 S5 A
{
& S3 y- N0 V/ N9 p" m if (this->isCanceled()) {
6 g: Q: M0 N3 j6 I2 U, k8 P% { this->reportFinished();" w5 h1 y- [1 s# q2 r3 r1 ?: J
return;0 L8 ]9 ?# W& ]' E
}4 s/ t6 @" S+ K
this->runFunctor();/ U" y- t, k! [* r
this->reportResult(result);$ L7 u$ l6 J6 a4 U
this->reportFinished();* N2 J* \& Z1 |
}
6 P' Z$ @5 H S5 K- {. Z T result;
' u6 p; B" I/ P6 w};2 l# m2 u" T2 A5 L, f4 g+ I
! C/ o) l3 U7 k
template <>5 L+ N, H- a5 k0 K: u# [( L
class RunFunctionTask<void> : public RunFunctionTaskBase<void>8 p! f9 ]; E) Q% J A1 J/ G3 g* `
{1 Z9 E7 U/ l8 f/ B( W
public:
2 _* o7 F7 m$ Y- c void run()% h+ I; [% Q# p: d' h- r; y
{
) I. B6 A5 k1 q: ?8 }% p, T if (this->isCanceled()) {
9 i' J. z: c0 |, n$ i) o8 g1 N this->reportFinished();
! I/ t; Y% K9 G, r return;5 Z3 ]. r. a5 o% M
}( H: z0 t! d; r0 v. V: r
this->runFunctor();
* i7 H* U9 Y: u4 `5 F b' g9 m4 K this->reportFinished();
7 [8 b# G% S3 J9 z }, e/ l4 E f, S" D5 f, T$ F+ `5 S
};2 B) Q9 o# W( Z9 X0 A
1 _# L5 D* b4 z4 L, H
} //namespace QtConcurrent
5 f0 y) f7 X: n+ K6 C9 C- p: l v0 O( }1 P) k
#endif //qdoc& ^! A B8 T5 \( P. z' ]. K. c- @
/ v; e( X) p3 ~' rQT_END_NAMESPACE% Y g& t8 q0 ~2 D6 z1 |4 n
QT_END_HEADER( P" m7 c+ h8 F
# W4 A" B# B8 k- V, P8 I5 O
#endif // QT_NO_CONCURRENT/ B4 t |( N4 X$ g5 a4 T% r* j
# j$ w n- e0 V1 K5 ]* h
#endif
- y; x! v! U- a6 C1 O9 y; H. Y3 [7 \) w) U
|
|