|
我对syslink进行交叉编译到arm,但是出现如下错误:, w- s" }5 v8 H0 W# Y
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'6 o% ] |6 |6 X
" v5 r" i$ Z# q4 J6 j这个头文件内容如下:' T- W% X% O3 a' @) k8 X/ N% L3 n
#ifndef QTCONCURRENT_RUNBASE_H* G0 P! ^- ]: W( f- R0 }& A& W
#define QTCONCURRENT_RUNBASE_H
: F7 V9 l9 |& p5 c- Z& @) {" w( L: s8 j& T. {
#include <QtCore/qglobal.h>7 d( |; X9 s6 Z2 o/ |
* {# n- M: {! u$ J#ifndef QT_NO_CONCURRENT
% G1 T! q; x+ P' S
# s) g. j' W' p' n" T8 \6 k#include <QtCore/qfuture.h>
3 v0 {- a T2 u1 g- Q#include <QtCore/qrunnable.h>
5 F' g& U, _1 z: w r#include <QtCore/qthreadpool.h>5 o! s& E, T R2 X* w& R
- [, N! [1 H" ^0 v3 EQT_BEGIN_HEADER
- v) j1 C6 F7 W4 aQT_BEGIN_NAMESPACE Y, x9 j7 V1 _' E% ?
3 g" X& C1 M) W9 i9 A2 ?: U/ [ _QT_MODULE(Core)
4 N% t7 D% _/ j" t9 k, }0 s0 d1 Q* J- ^! U
#ifndef qdoc; c- f& y- ^) e& r7 J" \ F) y
" }. S( Y; w* {' F7 M- m
namespace QtConcurrent {
. n9 L2 z2 q e1 p/ [& i- ~2 X# a6 G
/ n7 C3 q7 S2 m4 Z6 Gtemplate <typename T>
; s& Y: S7 }' ~ s- }struct SelectSpecialization
7 l4 u4 g3 k" J# y. i# q{! F' n2 W9 s* s' |. F# p! t
template <class Normal, class Void>& h3 T! h4 g* O
struct Type { typedef Normal type; };
' F T8 K! s. ]0 z4 Z7 _8 g [};" n% ^) J# k7 n" j
9 c' ?$ L$ t9 [" B( @
template <>
3 X4 f ~, ]0 [" L4 W7 v. d+ u, _5 Astruct SelectSpecialization<void>- } ^, b9 Z l
{& [1 A" B5 N5 S$ l4 v" h
template <class Normal, class Void>+ U3 w+ K; L* j" R4 \% n
struct Type { typedef Void type; };
/ l4 F$ o3 }5 C. B};, M( i4 g/ z2 H5 O
. L# v# C6 s6 W8 f
template <typename T>
# a( ^7 g1 s1 m0 E# i3 h. B5 Aclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
# W8 {$ I( Y m; W{
2 Z% P6 C$ e; {- a! e& N/ dpublic:
$ F* |* B' l# A1 f: z# c! S" U QFuture<T> start()
1 k3 C- {9 }1 H2 d$ _$ \ {8 S* h. \* a0 e" S) {
this->setRunnable(this);. f9 p! S( p. z, p7 v R6 V
this->reportStarted();( U- g+ i) H$ A) C% l0 s1 Q) y
QFuture<T> future = this->future();
3 W6 l9 n$ V. L. C1 c" W QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
' s* r) F! \ P# [( ^5 T. e return future;# _# j } H1 [/ K: s& p5 a
}/ G. m# b* [) G1 o; ]1 B# f# W2 J7 l
/ d; ^* o$ @7 u0 B void run() {}
" X; C* U _4 e7 O0 o! m virtual void runFunctor() = 0;' D& s; F8 A" N8 b
};
) K: x! P4 q& T2 t0 I
8 D0 C+ u! z9 j3 \/ mtemplate <typename T>
' _+ }+ ?$ G; Aclass RunFunctionTask : public RunFunctionTaskBase<T>
' `5 w+ H; h0 r$ M- m% M$ w) D8 z{! C X8 \1 ^. G& A
public:
3 r0 l' k9 _7 O0 s8 E0 B) B void run()
7 E8 _# F) |( W. R P* a {( S7 j" I3 p# {; E! q Q% U
if (this->isCanceled()) {! |! o% A6 f4 b# q& H0 ]
this->reportFinished();
; t* I( ?' b2 {# Q* O; i4 Q return;
- p% I1 @/ R7 x( L, \ }2 e: i/ c0 r3 B7 k( ?
this->runFunctor();. V+ w7 Q$ W: d* T6 b( {
this->reportResult(result);, C3 I% I7 X7 @" @& _. ?; B
this->reportFinished();
" [$ m$ Q/ A6 a1 k/ p6 h" [ }. @' l6 A8 c7 `! \
T result;
( P9 T% A# A: f$ h; ]};
% U0 c |+ [0 d( w: I; @0 V0 p) A
( W1 Q/ p. J& S5 R! h* {# stemplate <>
* }; y* j- z+ K: `9 D1 s* Dclass RunFunctionTask<void> : public RunFunctionTaskBase<void>1 ?2 W1 l% Z$ D6 ?
{1 ~7 b& J9 ?( K. f" m8 \% A/ w
public:( B/ V0 `7 w9 A* x$ H5 {
void run()
- l% C: t* [9 A& a% z! y1 g {
; O% O6 A/ H3 t v, @) l! G. u! Z if (this->isCanceled()) {
) ]. Z5 t4 T3 s1 x4 {3 E, ^ this->reportFinished();
8 t" y1 V4 \) B) a6 d return;7 q8 @$ J4 B2 i7 i8 z9 R
}
% N' |, q! Z8 T0 w this->runFunctor();% V% U' y1 Z; p0 F0 _
this->reportFinished();
2 ?5 O9 k, L( ~% p1 _1 s }* \2 `5 F8 D% ?
};
5 w7 o( I/ d |8 T7 V5 |* Y) n
* H5 w9 j0 J/ L B; x3 R} //namespace QtConcurrent2 |& ~# W Z7 Q) D3 I; h1 e: h
: [, B$ l8 _! `, M
#endif //qdoc
7 O u) f' H. [/ U3 @# }2 S
9 L3 P7 u/ M+ U2 [* F( BQT_END_NAMESPACE
5 R2 H+ E- t8 p& U* oQT_END_HEADER
5 t" h7 w, \. A$ j" H1 Y6 T( N, E l2 o3 r; `# h6 Z
#endif // QT_NO_CONCURRENT; P2 \ y. h: S& s1 P, d. S8 W" D
6 s I5 v% k, C8 L# |#endif8 S: X; h \1 ?: g
8 U. p0 }& D& }* h) i: J
|
|