|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 m% f; F- D% A; y& N$ w( E
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'' E i* O* s+ l0 h- z
# o5 J; @- s; ~ G5 p9 z2 l3 Q+ E这个头文件内容如下:
0 W* S+ R0 n! s' e7 |/ T6 v1 J#ifndef QTCONCURRENT_RUNBASE_H0 g( m1 o* @% w# c# a
#define QTCONCURRENT_RUNBASE_H3 r2 f; m m+ X/ j' K; b4 d
, n7 o0 }* p( [1 b( w6 v#include <QtCore/qglobal.h>9 g H# C1 Y$ ?8 v& K/ N$ d
' m6 H" K/ n& e5 \2 n5 ]" h; ~#ifndef QT_NO_CONCURRENT% L ^7 |+ u' s4 E
0 c. e, o% b# @% S& ~, W/ @#include <QtCore/qfuture.h>
' U' G0 T+ L9 j% D: u Q#include <QtCore/qrunnable.h>' r) q* J5 a+ J$ k2 m3 c
#include <QtCore/qthreadpool.h>
7 l- t6 Q9 i4 @
+ m& c/ ^9 g9 J6 S5 L- @8 [( d6 WQT_BEGIN_HEADER8 T! o; Q0 W7 S# s) n' p; h
QT_BEGIN_NAMESPACE0 U0 H% W$ W6 F+ L" G2 }
- |) f% W) [( B* vQT_MODULE(Core)
, t' B+ x. G2 P1 ^* [3 E, _
" X" n" C# I- l7 I u; T8 ~! {#ifndef qdoc J% \8 x3 K4 A! [) [) \! \+ i
) l) N9 |5 i! T2 u2 cnamespace QtConcurrent {; X i `$ a) {1 W) s; h
3 B$ v' i3 u$ U: T) g
template <typename T>
' I! I9 |1 ~9 W) n. Estruct SelectSpecialization% Z) G9 k: z9 z. @: G8 p
{" G X6 A. M$ t" h/ i/ @/ I. C# p
template <class Normal, class Void>
% v5 |+ \$ m- k+ s2 A struct Type { typedef Normal type; };
7 z7 K+ ?8 q# b0 B# I" K};
: d# [, ~# b# P! X( |3 G
$ B: Q! H; t/ ~; ]$ _0 y/ ~0 ?( Qtemplate <>' o: r C. q5 S2 z5 B4 [
struct SelectSpecialization<void>: I% n0 d J" `( R' b
{* F, m* R: D3 k" A0 [
template <class Normal, class Void>
" @& _7 a+ J: W" ] struct Type { typedef Void type; };
9 g* w1 d: i7 }5 P5 ^/ ~}; r/ f( }: D! V$ x" m/ \7 N
! C, ~8 D: r) u itemplate <typename T>
1 v5 I6 C7 Z+ n2 ?+ X) Rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- y' q _% N4 j# K6 c& Z2 Q$ R/ m{5 z( d, n- U- V% q
public:4 T3 C9 \- @8 [& ]4 o# T, q+ j) G
QFuture<T> start()
: c; h2 C( q n. X3 z; d2 d' J# K5 { {
3 E: `# s7 s, l" V0 ^+ K6 Q this->setRunnable(this); }9 j% S; y" M/ Y, a% X
this->reportStarted();
! @' J5 g! V" Y2 {& z$ t- W, x QFuture<T> future = this->future();
' W. d1 N6 {3 M. |& F9 V2 E( Q QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; e! F6 t" s O! c0 E: ~ Y return future;7 n! i! _3 \) k1 h7 ?
}
5 C4 ]1 }- ?9 [$ }1 p% @9 m0 _& |& Y' c: ]
void run() {}
! R0 j' B$ @/ M. _! F! { virtual void runFunctor() = 0;
* k# E0 y1 f4 F0 m7 O0 y};
. B9 Q7 D( K5 D! S4 b* z5 ?, q! O+ L9 @
template <typename T>/ R$ D4 H! \& t. h
class RunFunctionTask : public RunFunctionTaskBase<T>7 e! Y7 _+ r9 ?& A
{0 R0 u. j0 X# N
public:
, ]3 u4 W% j, T9 w6 E# w7 ?9 \* A void run()1 {: Y. h' z4 c1 Y9 Y
{
' C- b( F5 p V8 B' C if (this->isCanceled()) { O( |( h8 O9 c+ t) @. S
this->reportFinished();
3 M0 h6 `0 X( J- [! \( B return;0 k, F! K' i) n \) h- y8 X
}
8 u. I3 y3 l# b: m+ N" L: l this->runFunctor();9 q( W0 ^/ \7 \6 @2 c3 |
this->reportResult(result);4 z+ x2 f& \) d% D: o+ y+ C8 m% w
this->reportFinished();
# @, v2 l6 U# x! W }! D4 d( y% U" K7 k X* W/ ^
T result;
: T" e4 q( Y+ a% C5 z0 X# I/ x5 h};
% i" K/ }; \# I4 a! d6 Y9 {. R8 B k1 r( J1 A
template <>* k& k. v' c# f. z
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 p% E# {3 m- y: w4 l, |{
: x) |. a! m8 I% {" mpublic:
$ |. Y# e, L1 f& t9 o3 p" Y void run()/ I# F8 y. ?0 F/ `, \3 d. U& E0 a
{) ^. X, {$ {5 E% G1 ?" o1 E3 P R5 y4 b$ h. v
if (this->isCanceled()) {
8 n6 ~* n; t1 T; k- s( M3 G this->reportFinished();6 u* o* C( T: s
return;( ~& R: p2 d2 X* R; _! B8 [$ S
}! Z9 D3 I( @! y- F1 @7 T
this->runFunctor();/ d- u' m! R6 `! E) D0 T
this->reportFinished();0 b7 `* W& I2 g( i( h; x+ s
}
: c6 a: m/ Q& g0 {$ h};
. J; p/ k- y8 q; }1 J9 a1 ]; O0 y3 J% G" ~. c" g
} //namespace QtConcurrent* _7 |2 _( r0 z+ z' r7 f$ L& e- a
9 \" r7 Q7 R$ ]
#endif //qdoc/ t8 T# `; ^" w/ d* Q9 K) f7 p
5 @" O9 \$ ^3 x, f% bQT_END_NAMESPACE
: u4 Q7 J& @( T- CQT_END_HEADER
4 G I. g! C- O8 y6 G# S% N
3 V; v" B2 D, \* t. ]; j9 ^9 g#endif // QT_NO_CONCURRENT
' \- T' t3 T3 y# ?( u- S
$ r5 D) M" S5 S3 `) a#endif
- q/ C+ j6 V% c. `
# e: y% ?! Y2 A6 _; F8 `3 Q6 z V |
|