|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
8 N/ L& X) t' C, i' ~/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ n5 N; S1 y' Z* g* \6 s
# m. m8 H7 |+ B. L8 w- `" R% S" B0 ^这个头文件内容如下:0 R' s: Q6 R: ], P0 g5 x* I
#ifndef QTCONCURRENT_RUNBASE_H; o% N. }7 f) J# A) h
#define QTCONCURRENT_RUNBASE_H
4 K5 N0 E) t+ O4 I% g3 ?: B, H* |, F, d
#include <QtCore/qglobal.h>& M! \( C8 K8 g2 d( J+ E! D
+ v% ?" ]" d2 v9 d1 S
#ifndef QT_NO_CONCURRENT
6 g9 Q8 T# K. o* Y5 i" m6 ?, d' F7 n& o L2 l
#include <QtCore/qfuture.h>! L1 R% y- z. n) I8 L
#include <QtCore/qrunnable.h>
H' y- t/ l: o! ?#include <QtCore/qthreadpool.h>
, V; I( c. A/ W% p3 W- H0 A1 e" @0 I( ~& e K
QT_BEGIN_HEADER" q+ v- [' J" p" ]; U
QT_BEGIN_NAMESPACE4 `8 |6 a% }( {0 T7 k0 v/ {8 Y9 w x
) R# N% y; ?) p% L& R
QT_MODULE(Core)
% P8 w# ^5 ^3 h" H$ k
7 j0 O/ @3 y f1 F! R2 J#ifndef qdoc7 H$ `7 ]: B$ J& Y& L' a( r
( {- ~1 A/ h2 u W+ |: onamespace QtConcurrent {6 C' j: D2 ]. Q$ _' ^. T
# |. c. d" e4 w8 P; A/ F
template <typename T>
# p; Y- ^, b8 M/ w- Rstruct SelectSpecialization2 C0 e6 x; I! O# r* b8 k9 A5 ]* u
{
$ }4 t* ]+ o7 [9 G9 T template <class Normal, class Void>
1 y0 }) G0 `3 k5 [2 J) W; \! _- Z struct Type { typedef Normal type; };
H, J- H! O6 q; @& {}; ]4 F# T8 J& s- v$ J
" M, n. H5 e! E, Y
template <>
) I' `; V1 n7 C7 k/ L1 {3 F$ Rstruct SelectSpecialization<void>
1 ?4 J% @$ M5 u$ v3 i{ k D" J8 p7 ^0 F$ ?
template <class Normal, class Void>
, A( s" |3 U& u( B struct Type { typedef Void type; };: O `, M) j3 L3 U W5 T
};/ y2 w9 h* C: k4 Q* h
0 k! w7 T6 A5 q: k& _
template <typename T>
/ e+ e+ {" K( Y x; W! pclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable: ]& g: f l& r0 T* a0 q
{
& B, p# [: i9 `' Zpublic:
$ r) k5 n1 @) ~. D" Y7 W QFuture<T> start()% F9 k: R5 O0 \1 h$ T. ]* _
{" @; H' e: \7 F3 A4 v( T" R& ~- I* t
this->setRunnable(this);* I6 C% P( C' I7 z5 d9 o; r
this->reportStarted();3 R' C# I( P% R) F# ]6 x
QFuture<T> future = this->future();3 f; i# E" [: Q; [( n* X
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);: ^* {0 _7 }9 G) D: O- f
return future;
$ f) p( K( K8 d5 Z. m) T }
& H5 w1 |% G/ w' Y& P4 n- w: g8 r) L2 B0 M- \& F G
void run() {}5 g& _8 H: G$ r1 ?+ D s2 i$ ^9 h
virtual void runFunctor() = 0;4 Y, }% V! `& N
};
/ h8 _6 U+ h5 `1 ]6 g$ l/ Q
7 h, q; M& h* m4 w, @1 G. ^template <typename T>3 H; M6 O; {* M) A
class RunFunctionTask : public RunFunctionTaskBase<T>
5 W0 s- K) l' `{8 O0 L7 ]" g; F; C( o
public:) g2 _7 Y/ I8 C' v
void run()7 {# x$ T' T# y6 o. P" K* _
{
! W5 C# O/ d& R J$ _ if (this->isCanceled()) {
' P f- F2 `6 ?7 } this->reportFinished();# ]; u+ ]4 M r. X$ P' m& \" e
return;
" I$ F8 |5 D' V# Y0 Z; l }
" v; h1 O6 q/ y this->runFunctor();+ ~& Q$ E% ?/ b: o) a0 O0 r
this->reportResult(result);
+ b% r1 u" e/ w7 ` this->reportFinished();
; I' n9 v6 z9 K$ e: g$ K7 x8 U }) L8 k/ L" D; q# c0 w% i
T result;1 U, W- x7 Y5 L6 I: U
};
# @- X9 e$ m6 p4 j# q" C
; {( G! g/ f# L- @- X0 ttemplate <>5 `, M4 S* b8 T1 Z: V( T: e
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
' Z/ B- }# v X6 i/ r8 W" ^{
3 G$ _' _( c7 d+ y. x' Jpublic:# _5 K1 @# X: ]) |& c5 W! d; u- H
void run()7 {( b* w8 X( s' e) g/ x; i" ]
{
6 U1 ^" V5 `# U8 c/ ` if (this->isCanceled()) {- a. \" S+ F; c' Z1 @3 }& W8 z
this->reportFinished();6 V( w' g, s9 S
return;
8 u2 x0 V K, M+ l }9 N0 |: g6 u9 }" G+ w- u
this->runFunctor();
) L7 O3 R+ A; D, t: H5 M+ t this->reportFinished();
: X4 E) v; d% Z$ W }8 N" x& z7 G) Q& K$ C( K8 l
};! K3 ~- h2 }9 Z- z( B
' B8 T( q5 d2 t- G# [} //namespace QtConcurrent1 u& H+ f$ J5 r
" N$ r! N! v/ U- f; X#endif //qdoc
3 s, W! h! q: C; k! d; j7 ]8 z
) d# {, `8 s6 p; B/ mQT_END_NAMESPACE
3 {0 Q; w7 j$ v' U+ T0 g3 j! TQT_END_HEADER7 g- y" T' K. J$ X; `' r
6 I# \8 Z( E O
#endif // QT_NO_CONCURRENT
8 U* Y' j2 h$ |3 Q4 N G$ s2 }, h
#endif* F- H' b8 z9 g6 g$ O
+ \0 c: S5 I! o# |" w @; | |
|