|
|
我对syslink进行交叉编译到arm,但是出现如下错误:7 o! E' Z3 D/ X* A8 B0 x- a
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
! Y: u+ C! R5 H9 v! e$ Q f/ C
( ^" W8 x* @( c7 b% V/ r2 J# F这个头文件内容如下:2 D* D$ d; E2 h+ E
#ifndef QTCONCURRENT_RUNBASE_H
" ^' P2 u( u9 W( E; G#define QTCONCURRENT_RUNBASE_H) c& `2 O) T1 D4 U* r" d% l+ K
# v" F F8 P& v- R# O/ G
#include <QtCore/qglobal.h>' @4 q9 b, Q2 M& U3 D. S
" L4 N7 Y7 L: V+ F2 M# M! V#ifndef QT_NO_CONCURRENT
* b8 \5 o# ~1 \% \) c( C$ P2 ?* v. m* I+ I8 D$ ^
#include <QtCore/qfuture.h>
( m/ s: ?- M6 G+ M#include <QtCore/qrunnable.h>
2 p# J" B5 w$ {7 d9 [#include <QtCore/qthreadpool.h>
5 M r1 @" w5 }" F, a( O9 B W& d7 d) z% N
QT_BEGIN_HEADER
" x# F' F) B4 R ?) LQT_BEGIN_NAMESPACE2 o/ r0 y+ f, O0 P$ ^
" ]* |: k/ l$ K) j& d: f4 OQT_MODULE(Core)2 Y9 M! @7 w% N N
# C% M% ]7 N9 }6 I- M3 R# m2 [
#ifndef qdoc1 N1 _% n. Q5 S; \9 E- p' k0 h
+ q1 u6 a4 h# F! [- \
namespace QtConcurrent {3 N9 S _9 o) E( O+ E; l& R
/ G: L {! o- z* ^7 ]% ^template <typename T>
7 n9 T4 e: w7 _; istruct SelectSpecialization) v. d, m- ?5 }' N6 {
{
- R6 [7 x* X9 h0 F) e/ c' Q template <class Normal, class Void>
O c1 y- u5 Q5 e struct Type { typedef Normal type; };
6 `% X* ~% S/ U. Q! G3 ?};
" n! d7 Z$ y8 ^( M2 I _
" W; O: Q$ P* ^" b2 P. ltemplate <>
% u1 V3 |& I5 |struct SelectSpecialization<void>2 M* N# D0 [; H: W7 u: H- c& m# M
{
7 d& T8 E; }3 d7 } template <class Normal, class Void>" D+ b' J# Q8 ]/ h
struct Type { typedef Void type; };
) O- z5 T" d0 O1 _$ c};
4 f. W8 I4 @; P; v: g( }
7 R1 k0 j* o7 }, {! ?template <typename T>9 C% y/ P5 I) q
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
' t" l' d! N$ F- X$ P, q7 `0 \{% n ~2 e& k& x* k
public:9 k- m1 z0 x: R
QFuture<T> start()
7 x. L( G9 ^& Z) R {
) `* g5 M+ L% B+ ]' {' ~4 I' F/ s) H& F T this->setRunnable(this);$ D2 Z8 b3 H2 R: a2 I* b
this->reportStarted();, U, s" n. C! L* p! f" R# d$ r
QFuture<T> future = this->future();' f7 M. Z, a1 F3 l1 `
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);* m0 B9 O3 x8 \: }$ W
return future;7 @+ ~% l6 D) s0 A
}7 n* k' U; f) H- _
( x/ }2 E+ x* a$ e8 S; n) w4 z void run() {}
) c8 o" ~$ C, F virtual void runFunctor() = 0;
- c# Y( U% H' w6 M};: U S+ s) C! {2 r( k
5 D$ p# |$ u+ L$ Z( e) Ftemplate <typename T>$ N+ L/ D# f$ } L. @
class RunFunctionTask : public RunFunctionTaskBase<T>7 N9 K7 _' I' _/ ]0 k; s2 R
{
1 f D/ _+ X+ M" }, \public:/ L7 g- G4 O( @7 K; z
void run()5 m1 B$ M0 u6 j7 Q
{! o. ~7 q7 E6 o/ G' _4 ~5 w
if (this->isCanceled()) {
( S& q4 P! B) N8 P ~, ^8 P this->reportFinished();' ~8 P6 K3 J4 ` c3 h1 W/ d- \
return;% v/ n2 \: j: P- E$ g; Y% U# N
}9 w' k# |9 {+ ~* N
this->runFunctor();1 c8 \. a+ b1 ~' b6 a
this->reportResult(result);
, B( @% G, M2 M! n$ ]4 V$ T% l: s# p this->reportFinished();- I. B0 Q- J: V7 |2 ^. s9 u5 `7 V
}
4 S0 s( e; G( Q8 H* H T result;
. r( q: ] w2 X4 Z# ?0 `};6 p& B; }* }; W/ i- B
& M5 Q. z. B3 J# Y
template <>- u3 L8 ~, j F" {2 u; w) Q
class RunFunctionTask<void> : public RunFunctionTaskBase<void>" H( q/ ~5 K) x# x* J: q
{
' f. q0 X9 F+ T5 L# ]public:
8 K2 Q" _1 t# q2 v- d4 z void run()
; Y: G5 n: ?+ W# I% ^! R$ w. p {
+ I) Y6 C* z& [% z+ d5 E if (this->isCanceled()) {
6 C9 v4 B: b- B this->reportFinished();
( r7 N# \8 e9 J. S" p/ O return;
5 v! ?( o8 _/ \& S' t o. q }) E# ^- S& P5 i: O3 r2 o8 c
this->runFunctor();
$ D9 ?3 r- P" X: D q: Y9 t! t* E this->reportFinished();7 c) I( r! ^* B- ~. v8 Y
}1 s6 C' }1 q" `# @1 V0 r2 m9 K1 e
};
. j+ k* }' k! y. |& G- X9 x
/ G6 b# Q' B( I, m. O2 J3 c} //namespace QtConcurrent. M ]8 N7 b U2 z
, e% ?% r0 z) K! b, P#endif //qdoc8 [2 x8 I& O$ J: o2 t- X
$ m g; _ r$ u2 i$ E( xQT_END_NAMESPACE0 Z; X+ K! T Y2 D7 g3 W$ X$ U
QT_END_HEADER7 ~! v/ A- E3 `! ~3 E6 O. r
) {2 ]/ |3 V: O$ A3 V' J
#endif // QT_NO_CONCURRENT
4 [/ w/ @+ k2 S* J9 {1 E& z9 b. d5 l) A( E( _# W0 A- H
#endif
2 A+ T0 S, Q0 T2 w) @7 ^3 ~3 W' Y+ _1 ^! g; ?" M% h0 f5 b' t
|
|