|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; X2 _$ j' I! [3 F0 O
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
% ?& ~2 {* k, I) O3 _& I {8 z4 W4 C4 a M) _1 i! D Y
这个头文件内容如下:; z7 `4 q! O( S( I5 a
#ifndef QTCONCURRENT_RUNBASE_H
/ h3 H4 `% L: n/ D# b- d#define QTCONCURRENT_RUNBASE_H' R& ^3 z3 G+ A! y9 A+ ^$ ]: i
& w6 n4 Y4 h* y3 ?9 W
#include <QtCore/qglobal.h>
; M9 ~" y: ^& K9 q. B U! \
7 l% m' u3 r, s) E$ j5 b#ifndef QT_NO_CONCURRENT
1 @' C. ^* |" p n4 W: {; F& |4 _
#include <QtCore/qfuture.h>7 E$ F1 f" {/ }) G
#include <QtCore/qrunnable.h>
/ C) C. T/ M% W3 l/ x* W1 |#include <QtCore/qthreadpool.h># V) _3 j. Y! G+ q) S6 q! g
8 F/ w1 p! Z A0 D& IQT_BEGIN_HEADER
5 p6 h9 W1 \1 _ lQT_BEGIN_NAMESPACE
' w. t& c; m; w, i$ v c
) b; u& |) o5 N$ {7 |1 `' }0 a% `/ GQT_MODULE(Core)
. N3 ~; f, u" K+ r# o# R$ @& q7 g v3 o' t; v. K) s5 t5 i
#ifndef qdoc: I4 h! I S+ t- d- h. I l
8 K6 ]. K, Y3 X9 pnamespace QtConcurrent {" I7 h4 s, }3 n, s* U. `/ w- g1 h
! o z; \/ ?+ G* m$ Etemplate <typename T>( M" H! O" v& E. i$ L+ @( w
struct SelectSpecialization, Y- j% @7 S* q G- l! N
{
$ Y. P, C6 L4 D2 [7 C, L+ c9 q template <class Normal, class Void>
% K/ K0 K0 a" t. x; D struct Type { typedef Normal type; };
+ }6 P: t1 |7 {( v: |};
; K+ D& Y" Q3 N: r7 x- u
; ^. u) | [+ X' b# V% d ]1 Stemplate <>9 G! H( q$ }* f; ^" M
struct SelectSpecialization<void>& h* i( r! X: D0 e$ v5 i
{
# s2 E W3 n# T/ u$ V9 b template <class Normal, class Void>
" @* a; h% D9 J! j1 b9 B struct Type { typedef Void type; };7 f+ a* U3 ~& I+ R
};! v" O- r8 ]. J
6 U+ d/ ]. u( Q6 ]* j4 n9 D- Rtemplate <typename T>
/ c6 U9 p, J( O5 c$ Xclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable: S7 \9 Q0 H: I. g
{
6 B' |$ a$ I% W( b; \- hpublic:. h7 E' C# f6 [& ^
QFuture<T> start()
0 P9 @0 I1 E5 A# S* R: R) t. D7 R {
# o o% l) r9 ]2 ]) p this->setRunnable(this);/ _! _( F0 c0 J3 f6 j. a- I/ @
this->reportStarted();* a# K5 G5 x& o" r: s! f
QFuture<T> future = this->future();' ^( K) G3 k3 `! Y' f7 q$ k
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);! L5 y5 I3 h2 p4 |! y1 @+ t; I
return future;$ l( b( u; p% K( W5 K& S- ?
}
* a5 X; N Y" i) B! ~1 G, X! |: S! \) ~# ?0 d
void run() {}, B1 R& @$ e" y+ |2 V
virtual void runFunctor() = 0;
4 `: R# f5 I# f& b8 y};; g( l G9 Y% H n; |; @
$ F& b# X0 q1 S q& N4 }
template <typename T>; ^6 L, i- z& C: c
class RunFunctionTask : public RunFunctionTaskBase<T>; @ q* O8 X+ A2 }; \
{
7 J% C* ~( s: U0 } p1 w* Jpublic:
" ?$ r/ p# U1 [/ C# _ void run()
+ _2 p/ L+ T d' |4 S6 Y {! b, p) r0 i7 M8 i# \4 |
if (this->isCanceled()) {2 Q$ q) a5 n' w# P! J
this->reportFinished();
& v* a6 C |1 u. U5 a& F. u return;, o7 Z- a. J# _0 `9 M) `
}9 ~6 k4 U5 E; p* t( s/ |) ~7 w
this->runFunctor();; C; ~2 w( l% _! v! E
this->reportResult(result);. S+ d( g. P. b; G* K1 x+ d
this->reportFinished();
0 { w3 L2 {( [; b8 R" N: G }7 R/ v9 C+ t8 V6 s4 ^
T result;
: S* f1 z6 }" T# }9 a; M};
: u A n. n+ z: v4 A8 G& t8 F; q5 f& @0 s$ Y
template <>+ B# z# i! v1 x/ P( {
class RunFunctionTask<void> : public RunFunctionTaskBase<void>7 E7 o$ q6 \% w2 x+ J" z
{; |1 c. Q1 A4 n: i
public:
( @7 `" d( M. M) _4 q void run()7 d3 g& Q9 Z' S5 [' V' O- ^& `
{
# P: K6 a& z, s7 }/ u* B1 s if (this->isCanceled()) {
4 m9 l* W0 C- Z/ | l this->reportFinished();. ?% Y5 j% k% j/ n. ~$ Q
return;
$ y- |+ ~7 {- q, g5 j' q( N }: h1 f: @& V4 c" t1 D% ?
this->runFunctor();
& S# o8 L- R! t; t6 A# M+ ^ this->reportFinished();3 W1 I) v3 B/ I
}8 {, O K& a0 X2 c5 l/ _" L
};
# x# x, L/ T6 K; H) M X( D8 C' f% l6 r& I2 ~- v
} //namespace QtConcurrent
; y% o# m; P _! R: s1 n
; x: q3 q- F3 I L: @9 d# M2 S2 L#endif //qdoc) b( \: w" W* x6 ^
' [# m! T( i: o% P2 W
QT_END_NAMESPACE. M: a+ U7 k; D$ O
QT_END_HEADER
1 n+ a: p" Z8 y/ k* Q+ |; a. a0 h; H0 p( Q- p
#endif // QT_NO_CONCURRENT
! q: B ], Q$ s. }) u9 ]# Y: J, m& W1 Q3 D; r# ^) F7 @& F
#endif( m- |3 l Q9 R; Z5 h1 C1 x5 B; ^
8 Q5 c- ]- w' n, P
|
|