|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" q1 t% T. u! q, \7 d; @
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
9 L# G' F9 e% z
, }! i/ }3 m$ t3 J4 D8 l' f这个头文件内容如下:
" D- I. ^8 a% ~% `7 x; b9 i) G0 h#ifndef QTCONCURRENT_RUNBASE_H$ t9 ]( h& }/ T" x: a# \" u. |6 R! j
#define QTCONCURRENT_RUNBASE_H
+ X+ |7 d- a x/ E y# ^7 M: H/ h2 u6 t ^% E2 w; d
#include <QtCore/qglobal.h>2 V. q% M, n+ G# H# u) ~( z3 K
" J2 ?% ]/ y3 d" ^$ J: j. @
#ifndef QT_NO_CONCURRENT
# x1 j2 m t. L0 s1 J( W) K* E r o1 Y2 m% h
#include <QtCore/qfuture.h>) M6 Y6 [0 k' D* V) A
#include <QtCore/qrunnable.h>; @9 u; O0 F2 o/ y9 u8 L! p
#include <QtCore/qthreadpool.h>
0 d. C6 E4 M' M8 y2 q: K) z* l0 E; {' Y# H
8 g; q6 y. W; u' l* yQT_BEGIN_HEADER
8 O0 [$ w; M1 K; tQT_BEGIN_NAMESPACE2 c ` t4 v b9 F& K
4 T8 f) a( B( w3 H/ I. n! g; u6 nQT_MODULE(Core)
8 r9 S! P2 d/ A% Q
( I; i; _1 @7 `! }) i. A" `#ifndef qdoc
3 P( l, H* q& Y0 d4 @$ Z" I& v4 u# M2 G+ d4 z0 W& u( f$ M u, u
namespace QtConcurrent {/ u' @* m9 O# p4 o1 t1 f! f9 Y
" ]" M1 u2 A5 o! k2 ^: [* |. ytemplate <typename T>
/ ^* v( F( s) E5 |$ I# j4 P0 k% V+ @struct SelectSpecialization" S: V$ v3 p, Y, m! ^3 X
{; ?/ k0 B4 V3 M$ f& G
template <class Normal, class Void>
8 g- ?: M" l- C9 h struct Type { typedef Normal type; };
8 A) h( G, ^; v ?3 `};
1 V# Z% j5 B: F; f+ g5 B& D6 A" D
' [! B1 a# J. a j* }template <># F$ R- F. Z ]
struct SelectSpecialization<void>
3 n' K7 I7 L- ^( o' y{4 T" z# {) _6 Y: I6 }( B
template <class Normal, class Void>
5 N2 g( j7 i+ e% I2 c struct Type { typedef Void type; };
0 x( R4 O& W6 d0 |: a) s9 _0 K+ h" _};
5 ]$ j* q2 G6 U5 i2 Z3 s# }8 k- [- e7 i+ G) ~
template <typename T>
) Q" K$ i2 e2 h9 ?+ fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable& |/ j* e" {5 J& z! \
{
`4 ^' ?8 T7 [& p* H! apublic:" b8 ?: y" |) |9 n
QFuture<T> start()
) ]: ]1 J6 S, n1 u0 { {
6 n1 D6 H5 X2 f X e this->setRunnable(this);
9 J/ P8 d0 R- e this->reportStarted();1 w: r6 _. |5 f, {, a
QFuture<T> future = this->future();6 e. F/ S5 ~- T7 F8 L: H
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 O$ d& S, p9 Y- H
return future;
) Q5 O& V. l3 [# ?% U$ N( n }
: K9 ~( N1 C! S7 F% X/ n5 x+ Q
% _( y, |+ f4 m6 d1 l2 L1 \ void run() {}
2 H, a) [+ ?& L$ Z3 v& D virtual void runFunctor() = 0;+ M3 P% l2 f( C" ~# M7 x
};
2 C8 f- i" t0 O- f" }; X: R- j8 H. a+ q( ?2 {6 h# ]8 P
template <typename T>) \( V2 x# Y: S9 r- ]$ f/ x8 ^
class RunFunctionTask : public RunFunctionTaskBase<T>" O3 o! Q* g; O6 M- Z. q3 b4 s! B
{
0 z2 d# @' p9 ?public:8 T+ n& u \: ]/ Y9 a# C
void run()& ?: } m1 q9 t: J4 w/ q. X$ E' R
{
) Q1 c- _% ?+ Q9 i9 q; e6 h if (this->isCanceled()) {# z G" N6 H. d. I) p
this->reportFinished();& D: a7 J" G# _( \$ G+ x
return;& S: j4 t5 E+ k6 Y0 u
}$ s" S( [, W5 p8 G- X; k1 w* c& |
this->runFunctor();
6 F/ D0 _. t0 t6 A; k& T4 d this->reportResult(result);
1 @, M8 f8 G' N1 X this->reportFinished();2 ~- w* L, }( X, \, `
}( s* G) m6 `0 `: C* m- M
T result;! u" S4 ~- y# f: Z5 S
};6 N- ~8 ?" n: _% j1 X
5 k$ a+ ^1 ?9 ^2 a6 ltemplate <>
) ~6 x4 g# U$ Sclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
# a, K2 K) V1 F+ V1 E! a{) a F( R x; e2 K0 R
public:' Q& s; b2 V; S- ?6 p# I% o
void run()( r& Z5 w D ~% [+ C
{
, }1 e: `# A4 V/ G5 `( | if (this->isCanceled()) {
' ? G( @5 _! G) d' ~* j8 {. s m this->reportFinished();. \) h' X* I0 y' T( o5 E
return;
; ~5 Z% w9 M4 {) T1 ?- Z5 U1 A }8 w, c8 ^0 d0 `
this->runFunctor();4 t% V. m( i/ r, Y2 G
this->reportFinished();& `: G6 t6 }; \ F
}
0 I2 x4 W& V$ _$ R' p% E, A};5 i ?( w2 p6 k8 q
6 h6 N6 [/ E' `/ c$ F" d; V
} //namespace QtConcurrent
# R8 R) t; |$ p' y }( j" A$ }4 u9 k( |, f
#endif //qdoc
7 L+ u! [+ m) X" T8 _+ e% H+ ^; z( Z8 I1 e) j, p/ K" N9 a
QT_END_NAMESPACE1 d) r* I; A) t4 |- b
QT_END_HEADER
, j9 t# u n) l: d% q; ~8 X* m7 i% u7 C6 T8 C, S1 F
#endif // QT_NO_CONCURRENT! K q9 h" F/ E; g2 Z! J8 \
5 r# A7 {$ I: D0 U. |1 q! J2 c' F1 S
#endif
( a! |4 E/ ~ m2 l* N+ z' s0 Y V7 A' H) s: U: u0 L! ]
|
|