|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
; Y( o& y% b/ y" |+ b: H- x' u- {/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
8 ]- y, | m* J6 T* n- K0 X6 U! \/ a: r/ r! F. a+ ]2 j3 Q/ G8 l
这个头文件内容如下:
. L7 {( G9 S0 c+ P7 n/ n#ifndef QTCONCURRENT_RUNBASE_H* l- o x7 B& A2 C, a% t0 J6 E+ c
#define QTCONCURRENT_RUNBASE_H- w( |. Y7 x T( v
$ @+ s4 ~, ~3 w; G, Z- K1 U
#include <QtCore/qglobal.h>
% L* o$ w U3 q8 g8 N' c; K7 Q6 D1 O5 o( q0 k2 _
#ifndef QT_NO_CONCURRENT& c/ N+ O- g9 p, w; h
2 G6 d4 o" y& e+ u6 J+ Z& N#include <QtCore/qfuture.h>
7 d7 E, d+ f, g! l6 t$ e#include <QtCore/qrunnable.h>
+ J4 I( x$ `4 m$ ~, W# |' a' @#include <QtCore/qthreadpool.h>5 w% Q1 S) x# a6 Y8 {2 T W
1 F* M6 D- v8 }, u, H% B6 Q6 Y
QT_BEGIN_HEADER
$ w: x: e: R% C4 X1 EQT_BEGIN_NAMESPACE
# X+ C6 S5 t9 @! c/ W
. O- |2 c% N M0 m4 v2 S: lQT_MODULE(Core)
5 N8 ]% }: O, G8 _7 a! ^
0 X; u( r3 r, _* M' j#ifndef qdoc
& q) K/ J! Z& o* d3 h4 n' l p7 q& Z( q
namespace QtConcurrent {
% {& U9 _" N: G9 }% T6 W! c' n. O* ?0 K& ]5 e" d
template <typename T>( }/ ?; U8 r% M v: k, W& s0 F
struct SelectSpecialization4 u8 @# h0 \: R' c2 O
{
3 Q" U* T( M6 E. e5 C7 M template <class Normal, class Void>
- l c& X% v/ `5 S) r+ n5 c/ @ struct Type { typedef Normal type; };
. E t' A( \ z1 T, O};- a% B$ J- ]. t" G/ `$ o4 w
6 v5 |4 _0 s! ]$ C2 {8 ytemplate <>
5 K8 o6 G6 `% l2 Sstruct SelectSpecialization<void>
' V" f+ T: D) y S{
# K: d7 Y- B3 c: [, Z! \+ P template <class Normal, class Void># l2 `0 e3 K8 h0 p5 ]2 d0 C
struct Type { typedef Void type; };
5 E0 ~# G( n9 K, f) h4 q! |& h% e};
( W4 H8 U1 f& H' L7 |5 s: l& F7 f. W" @; E; o
template <typename T>
3 [( r% ]- J8 e3 ], \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- @5 L4 |( ]1 l6 _7 p{
0 W- k0 D, M' Ypublic:
2 r$ q4 y/ D5 T4 H F9 H$ W2 U QFuture<T> start()0 ~9 |& c7 A: N" [& U! o
{4 [5 y& a( A/ c2 E9 {0 T/ D
this->setRunnable(this);
, L$ \: l0 S& b1 J/ ]& s% l, P6 p this->reportStarted();
# m0 g8 O$ {* B. V QFuture<T> future = this->future();
0 N/ e8 z& p a" h6 n% k QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
5 D3 L& N/ Z3 X8 _9 C9 s: C+ \; u return future;
- n0 r, [9 R3 e }
1 Y* `) k# s h( B! U. H, Y5 H4 \# b( j
void run() {}; w ^1 a( y- C: d( ?8 Y6 X" r E
virtual void runFunctor() = 0;5 a$ i( H- Q1 o' K1 l0 G
};' g' H; j1 C& V1 s$ s- \
4 l$ T( ]' {" J
template <typename T>
+ `7 {/ E8 B& W3 U3 K0 rclass RunFunctionTask : public RunFunctionTaskBase<T>
7 S. Q) W+ q$ w* Z4 r7 T3 I{
8 Y6 u% F) k2 i. F p7 wpublic:, H& N% i4 O2 N( o0 E
void run(): V# u9 C' `3 F" R# F7 Y1 r
{
$ V( x4 k6 @' }4 |+ x if (this->isCanceled()) {5 k$ x+ \1 z2 B5 A: ? D/ I
this->reportFinished();( G2 e: d5 a- ?( E# ~% ]
return;5 q$ G1 y, r2 y+ C0 d" `- ]
}
n5 ]5 i$ |. } D5 g7 w8 J0 `2 j' k this->runFunctor();
* Y1 z6 Q! F# H: r" [, H0 N) e this->reportResult(result);
: z2 g' a7 O( R8 ] this->reportFinished();
5 v$ ~' Q3 ^! M/ I }) o, s7 F4 O2 S
T result;# B3 {2 k& R$ v
};
1 L' M" g; C' Y$ B7 I8 ], ~( F" Y* q" r* O
template <>
: h4 u2 s: P2 v) O. |class RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 m+ L; L+ a; H W' b8 i2 T: V{
! |- H/ F/ I7 epublic:. c7 D% v) p9 q. W0 F' Z
void run()) H$ B$ b: Y& u' r
{- A9 e) [$ u4 U2 g |/ U1 n4 s
if (this->isCanceled()) {
3 B( ~7 X# P/ B. c/ l7 U& Y4 T+ E this->reportFinished();
0 x5 V/ [+ G# P2 ~$ k% {7 } return;
* c1 q. G3 U6 h( |: C/ ^ }( x4 ^, b2 O& [9 k$ ?5 J/ q. ]
this->runFunctor();
$ u. b2 V& Y# l this->reportFinished();) d, U: o/ S, h6 A9 ]: v2 W
}
. N) p* Q" Z& }( ^; ?};+ x2 L) Q2 i8 ]1 ^3 b
- |8 G. k/ R- y2 Z) h$ @
} //namespace QtConcurrent4 u5 {% ^9 C8 {: W
! b( Q+ {8 \7 I) T/ s#endif //qdoc! I+ G% r+ Q" ?4 w: p7 x
0 m m! @8 P+ Y6 D
QT_END_NAMESPACE- k5 C) O4 B6 C6 k; a
QT_END_HEADER, s, Z- \3 C1 N. ?" [
1 B+ P& r$ H+ U, }* t9 @ Z#endif // QT_NO_CONCURRENT# P+ ~. H4 d. E1 r
( r& |5 X, a4 F* F- u" r% \#endif& Q! m, N2 U* Q0 l( Z
+ f6 B+ _& A+ f6 o' V3 i
|
|