|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
5 v4 Q( V5 M4 b0 t/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
4 I5 p+ p2 ~; j% h( B
1 v! P; O$ @( g6 I. H( ~这个头文件内容如下:
4 x8 N; q+ h/ y( d: Y! s#ifndef QTCONCURRENT_RUNBASE_H) _0 j/ i( k) o2 Z0 U6 y* ~. [) u0 P
#define QTCONCURRENT_RUNBASE_H( x4 p- |0 p- { M' j' x
G2 O6 E. U5 p, Q' C0 ~0 N
#include <QtCore/qglobal.h>
. j/ G$ }; P8 _* j) B& X, Y8 R- P/ ~' {! j1 z1 }0 ]+ D
#ifndef QT_NO_CONCURRENT
1 G5 C- v) n% v+ J
) U. J5 A+ @5 \8 x& Z! n#include <QtCore/qfuture.h>
" Z& f! g) _* S#include <QtCore/qrunnable.h>
/ p2 _; @/ u) w+ y* ?2 e, v#include <QtCore/qthreadpool.h>
/ `3 C$ Z W0 @# ~. _- Z6 c( G
$ {. L( ]% ? d7 ^QT_BEGIN_HEADER. ^, z& s! D# `5 B' [
QT_BEGIN_NAMESPACE- O$ u9 n+ V# o
W5 r. r! C' e& f0 t$ y7 T
QT_MODULE(Core)3 W& O9 ~* Y( a. Z$ x1 I2 |* y
' G/ C7 z7 F: b1 a; C5 g
#ifndef qdoc% ^$ [8 B% s; v
1 J7 ~( g# f' K. ^0 N" l' |
namespace QtConcurrent {
9 e* ~! t6 L( P1 \/ B' ~1 P4 ^8 I
template <typename T>
7 U6 W6 K- s; r) e. Z" j, }struct SelectSpecialization P' e! M ^' X
{
5 g3 m4 s7 d3 g. h1 }6 ^& \ template <class Normal, class Void>8 E+ {; V# J |" m4 x
struct Type { typedef Normal type; };
! c: y7 G9 @/ S$ y};9 R# o- x: f! h, _. ^
" ]- N, Q% N3 p' j, x9 F$ B/ dtemplate <>
* A0 i, K; w6 [! xstruct SelectSpecialization<void>- l Q4 Z5 I9 [1 D1 Z' [
{
# @8 I" j( O9 B ?7 n6 A' r template <class Normal, class Void>
, l9 P ?' t* t! f# Z5 y/ T! l struct Type { typedef Void type; };
5 T8 L# n8 @2 X1 X5 V [2 L2 Q/ a};
: J) k1 G ~, V8 V* B1 _2 F
( G( K" s6 Y- ]) B3 c, g5 ztemplate <typename T>% v. |$ I0 O3 N7 _! W
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
# V$ L0 }' V$ z' @{
4 s/ c, V4 O# ~public:5 {" Y% B6 {. C" M7 D5 `# |
QFuture<T> start()& Z! Y" q8 }, K) `: F: x1 n* B
{
# J2 U* X7 F" K7 U$ r6 v4 w this->setRunnable(this);
* c E% r7 K! c9 j9 V this->reportStarted();+ F0 p9 B1 y7 ?. D' M) o' Q
QFuture<T> future = this->future();$ ^( N8 m) _: s' Q8 e. w
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);! ?4 P- @) j8 v. m" t# I6 P1 F
return future;
4 p6 z8 Y e3 Z- x }5 Q" B9 Y7 s4 h$ T+ p- \* f4 }
& z% C" N* n% w# p/ x void run() {}3 G0 o+ A; S) p6 T
virtual void runFunctor() = 0;2 R8 S; v! Y8 c* y
};
# `2 x3 D; T' ~/ @, J8 L! v3 J( W( k( v* L' H! c2 W$ p8 |
template <typename T>% h: N1 Z3 F- t) j" {& B
class RunFunctionTask : public RunFunctionTaskBase<T>
' X3 ?8 v+ x% j- c4 | C9 {. s{
3 P! s9 K/ `1 q1 L' R$ @2 Zpublic:
2 f3 v, y3 A1 v$ ^ void run()6 q. }0 M1 H: k1 Y O: A
{- `& a/ I4 q- t9 [1 m: Z
if (this->isCanceled()) {
0 h3 C: P& n _ this->reportFinished();6 l2 m& W% V* z4 a b
return;& U \' |5 d; b6 W P) Y( H- L. p
}- {) w+ A6 H$ b4 ~4 i" @ H6 r
this->runFunctor();
4 s) k9 @' A* K1 R this->reportResult(result);# ]2 ~. I, f( U
this->reportFinished();
/ v- f* u+ b$ _. f }
% N1 C! M$ L& u4 z T result;
. h' N# [; y, [% K4 j# X0 {};3 Z6 N! M( u6 g+ V8 ^. g
3 u" h. s+ O7 I+ I, s) N, j
template <>
F: h; ?5 S2 D4 A+ `# c2 lclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
d: c) w: j) p+ ~- E: D2 E{0 L. U: P% A* l) l V+ {$ e
public:( k- ^+ W( H# r$ @; p% W. W: e
void run()
0 A" M- f+ j' l0 V, l3 F$ P {
# n v6 D+ r; Q/ L& o; S/ |6 l7 f3 M if (this->isCanceled()) {: ~4 V( Y! e( N/ m' |
this->reportFinished();; H( r/ \. v* K0 k
return;5 g$ m: G. O) o2 u; t7 W
}
# W$ a* f8 A/ B2 | this->runFunctor();& ]+ _% s$ M/ O$ I% Y2 ~
this->reportFinished();# H& n" ~) E7 s9 Z" M( V- z: [) {8 y! u
}4 b$ u( o" s0 F. h
};/ j0 Z: X% t( r$ b( T" w
) L' b- F- g z( ^. L/ y, K
} //namespace QtConcurrent
) x3 C2 t& O" a* S! [# G5 A# ]5 s/ w
#endif //qdoc# x" ~6 P: Z! h
1 w& F/ |5 ^2 a* l) M- a7 @( q
QT_END_NAMESPACE( Q* B, n, C: o2 o
QT_END_HEADER. w/ h% C7 p: a# P- Y0 ]: \) t( _/ p
$ Y; c! ]) k; |1 z% M @, _) M
#endif // QT_NO_CONCURRENT/ D, O) w; \$ E
3 V! w% ^3 C1 H$ y#endif
9 f7 U7 m/ M3 J7 Z
5 i/ Z! o x- Z' ^- B- A |
|