|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; W8 n( m, U& |% n( E$ h+ W" x" 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'* o# {" M' l- Z7 c6 N% T6 a$ H
7 v3 X+ g4 ?5 s- t0 q% o
这个头文件内容如下:
3 {$ w( W* ~# D#ifndef QTCONCURRENT_RUNBASE_H
( K. O+ x2 V0 v) A! Z; x8 {#define QTCONCURRENT_RUNBASE_H
4 l# X2 K1 C, p R8 U9 G: m1 k: k& C5 W
#include <QtCore/qglobal.h>' u( ~5 i0 Y$ G, s
3 _, y2 K8 e( Y6 ]* h
#ifndef QT_NO_CONCURRENT! I# h" ]! D& n3 D# X1 V$ R
; R- N7 y4 s. y; n7 U6 A" K5 Q#include <QtCore/qfuture.h>/ `+ U5 U. Z4 e0 j
#include <QtCore/qrunnable.h>& @4 p, ?, Q; l7 A9 O
#include <QtCore/qthreadpool.h>3 `7 E& F0 q3 v7 z
* D5 V& c1 G" M0 ~2 H3 ]# b2 p5 r& KQT_BEGIN_HEADER
! r* s3 k/ ^. ?# q) wQT_BEGIN_NAMESPACE
" B! j) z. x3 v, f4 V' D8 k6 A2 t3 F: ^: _) Z; D; S. q( Q' \* C
QT_MODULE(Core)1 B: I" Z/ _. x- B; H, e+ U
# r( g1 G5 V% r; b4 ?#ifndef qdoc
2 @" D }( W* R* Y5 T K- S& ~1 J
8 j7 j- T' v4 y9 L& @+ Qnamespace QtConcurrent {% [. }& l( f% s; m7 g6 Y) g6 t
1 V- A! h# x& b* P. a3 v9 |" Ntemplate <typename T>
! J |8 Z! a7 V; l6 n) V9 z0 y# t& Xstruct SelectSpecialization5 ? E4 U% T$ P) q. B
{4 H8 b. n. C d, F0 [6 w
template <class Normal, class Void>% @/ `8 L' d% W! N9 v# f8 q
struct Type { typedef Normal type; };, D3 S3 _0 d/ e7 c0 r# V# @
};
( o1 @4 O% B, R( {; I5 h8 g( E0 d6 T+ v: t& o3 V2 U
template <>3 o J; M8 i4 v% N. ? p: a
struct SelectSpecialization<void>$ {# M, j k. ]7 f
{
$ N5 H8 r+ v5 ~1 Q template <class Normal, class Void>$ d. h1 r" v* b) S
struct Type { typedef Void type; };
; J- T: f" Q- B7 N) K3 K2 g# g};, W) U- N6 J- ]0 M( [. |1 H' W+ m
) H+ T5 ~: _- M n, l5 g; mtemplate <typename T>
w. m! F$ u/ I+ r: v% Oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
' L7 X4 y, }4 J8 Z$ ~ }6 Q{
" ~* {3 y, @) Z0 G# v- Ypublic:
# c- x5 s* r2 k+ a% W r QFuture<T> start()
' v( v$ b; Z0 O. D/ ], Z+ c {
5 t. ~- E5 B! V) Y9 L7 Q this->setRunnable(this);
% C$ C( j# c& E this->reportStarted();
: J) p( q2 Y" T& ?" v QFuture<T> future = this->future();
7 `0 Z: K7 @, Z# ?5 [: _% P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);5 L+ H2 [( t8 w/ S, [
return future;
2 p- K, t) }0 G }
6 X* L9 R* t! {0 V6 f1 ^# D* g
" D+ r5 o3 e' d# Y) {+ f8 r& r void run() {}! v: }: K& v5 t' F
virtual void runFunctor() = 0;
$ s) W: V. N6 v. M4 P};
6 a5 @! F) B. X) l
, C5 n1 ?, P# Ctemplate <typename T>6 R0 I$ x4 ]6 ^. n5 _
class RunFunctionTask : public RunFunctionTaskBase<T>
& k1 }. T9 B" k+ F! N3 y{
: S" m. [8 Q3 A8 J1 e' y$ ?8 O! W$ X. Spublic:
9 h0 `3 S1 Y! H5 x2 W+ f2 A void run()
* s5 H9 n5 Y& h- O+ _4 v6 c {! u. T; `: l- ?: p
if (this->isCanceled()) {0 _) |4 H" [) ?! c- Q: H/ K
this->reportFinished();
% ^! H& ]8 j3 d' |# w; X. O return;# b; O& a* e* x4 ~* h% v7 i
}
9 [, B; ~; X) f this->runFunctor();
" e3 B4 U0 }9 W; x! Y: M this->reportResult(result);
; H7 L, C* X6 J, t+ [; c: } this->reportFinished();
2 }+ e! q) q, }0 m# s4 u# D9 J }
# O- Z+ V7 s' e% b, p T result;6 P& F! x1 t, @
};
- H' s# @$ p9 I8 L4 _
' p+ x# x( f! otemplate <>
j4 F/ j" l) d$ [class RunFunctionTask<void> : public RunFunctionTaskBase<void>
2 x9 k7 X4 \$ s% R{
5 j6 Y3 T) o+ J* u' r- q; ^public:& ^; \; G" k: v! |4 y6 v& n: B6 e" O
void run()
8 m% t) w1 D& r; x' m6 E6 v+ u) C/ \ {
' S E. H3 ` \# x% D0 e. E& j if (this->isCanceled()) {5 h& H) B* n8 Y& ~' h8 m
this->reportFinished();
+ X$ f. j9 J0 i1 x% F return;4 U4 H9 ]/ ^+ [2 I8 F% E) m+ H
}+ z& I: D% A# Z& k
this->runFunctor();) O0 @' a* W6 F# k/ u1 F8 o
this->reportFinished();. H3 w/ l _, u2 c8 d0 `5 a: J3 D
}6 d1 @* N! z0 D
};0 f7 ]! l3 A2 s$ e. _4 K4 V
) Q( m' ]& A% @4 X6 N& l4 l
} //namespace QtConcurrent
3 p8 n# B8 B/ ?2 @# w/ y4 F# b# b
) c% s: {4 d+ W! [8 |( a#endif //qdoc; H2 |6 j' j- e i6 x) V2 D) F
4 ]3 Y" Y: t7 l/ z' y( n
QT_END_NAMESPACE" J0 }2 E& q2 ~$ a) M
QT_END_HEADER
8 ^- |0 X' v8 Y. S9 p! R: H2 s( Z S
#endif // QT_NO_CONCURRENT
F# a* D# b8 m
" V( ~; d5 d/ \5 a#endif( E5 l% N9 A$ I/ I/ f* M# x
4 F- M% J7 `/ G$ u |
|