|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 L3 M- @7 K# V+ 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'9 {' M- ^7 N- U- m5 p9 S: N
0 z. g) Q9 S, \2 ?5 p# ?1 E
这个头文件内容如下:
# W9 n7 W- z7 u% i( p#ifndef QTCONCURRENT_RUNBASE_H* U6 R- B9 D! k' P3 {7 `
#define QTCONCURRENT_RUNBASE_H
" k1 y* Y! w0 {, a' O4 i
0 T o R4 x( b( d#include <QtCore/qglobal.h>% w* i( }, w& {+ q
( n1 E4 t" b# h
#ifndef QT_NO_CONCURRENT% d+ Z) p n1 b; m
$ i2 Z! a5 F6 w+ S$ j4 u3 h2 E#include <QtCore/qfuture.h>
3 Q, }$ r( Q9 Z6 R) X7 q: T3 t* c#include <QtCore/qrunnable.h>
1 ^8 i \1 {; X ^: C#include <QtCore/qthreadpool.h>
/ Z T/ [1 y+ j( d8 z3 ?
7 x/ {' ^ Q" ^( m2 h) t6 o# EQT_BEGIN_HEADER
9 B' X; }7 ~. bQT_BEGIN_NAMESPACE
+ }' M. z. ?. S6 a! A I2 b' |& O" M* O( q
QT_MODULE(Core)9 T; }/ G* d8 ]9 k9 P" A2 V
6 {3 {4 K" P+ l* H! k: W; b0 ]
#ifndef qdoc
# l/ l# M# i! ?( k; [' \4 X0 W* L* C" `+ _+ }, h4 r2 H- }9 B
namespace QtConcurrent {
7 P3 @6 M5 S4 r8 K5 i
7 L& y, Q7 U; ?) c+ l, X, ]. Rtemplate <typename T>
8 N6 M: K5 [& ystruct SelectSpecialization/ E& a2 f6 ~" X
{
, Z0 r; M+ X. Z. O template <class Normal, class Void>
# ^) z1 N6 m; A) F8 K! Z struct Type { typedef Normal type; };
3 i- r# \! Q% z2 p+ q};
# b7 F# y% U( B
2 D o- W5 u/ {* r1 e$ Gtemplate <>
% L$ U% Y* D, r% e) Hstruct SelectSpecialization<void>
+ h* `2 F# n$ Z" i! W+ r{$ b" I1 F; Y: Y( B7 K* `
template <class Normal, class Void>( Q2 ?3 {5 A% ^
struct Type { typedef Void type; };
0 K. u0 w S6 l};2 B; z& x- C3 p) N0 q
9 W3 o. [2 `& G8 Ktemplate <typename T>
- v0 {: _/ C8 s8 ^! hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, }; E5 i& p" _5 |5 [{) _) b: F# B3 f4 `
public:
7 d( \4 p6 W4 T QFuture<T> start()
& t& b; A, r, H {4 a9 ?6 V) \- R; N: T- v
this->setRunnable(this);
9 |) b: W- e- J" t# W this->reportStarted();& S, G. L) Y. {+ U! V
QFuture<T> future = this->future();
" O6 l" L8 A7 h! X: j4 a QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 a' P2 W1 c/ d1 S. @4 S. X return future;. t& k" w5 S& G5 F. k5 z$ Y
}
' _3 m$ O1 {, J6 M1 R; l+ J8 { c
" b, |' j% U- |+ s5 } void run() {}5 d3 K7 r7 S( e l% @6 D
virtual void runFunctor() = 0;) g1 y# T* M! ~- D( I" a3 n6 S
};# c" F4 |; O4 L3 g, g
1 m- j7 k- ^, S! F$ Qtemplate <typename T>
$ o1 \+ z# h4 ^; G$ @class RunFunctionTask : public RunFunctionTaskBase<T>
: p9 @: G4 _" P) H) C{
: K( c" v, E6 G! x( Z" Tpublic:% F- L5 S. r, a1 M
void run()! U5 u3 q* ~+ m8 L8 r% w
{
4 X% \2 `2 D) B7 k if (this->isCanceled()) {
2 t$ B: D, X) h this->reportFinished();
4 s6 K. e, W3 M7 [: ]) a return;
! O" [; P3 i% L. w; y }) c; L+ W: i3 `) L( Y E4 m
this->runFunctor(); l$ ~; f4 a9 I
this->reportResult(result);# D6 X/ L) K6 G/ C* c% I9 j( m* [
this->reportFinished();
# E$ l$ `- e I- ?: ~. d4 e }- L; M8 C' H+ H `: t8 J f! G
T result;- ?3 p- b6 Z$ n. V7 C) f
};
0 R7 X! ~! F" ~1 z) M: T* c- L2 H- T* A7 v1 Z
template <>
$ C2 P) K- D$ P9 j5 f* bclass RunFunctionTask<void> : public RunFunctionTaskBase<void>. P4 s0 [3 M. U
{
8 y0 G+ n" [9 c$ r9 B! Lpublic:$ i b$ r, n$ n2 ]
void run()% f2 m: w9 _' i8 v5 q
{
" b2 o1 P% n/ `6 Y4 T- ] if (this->isCanceled()) {
/ _; ^* t: g- J: b this->reportFinished();
h4 i; ?; C3 {, ^4 s+ ] Y return;
5 N: S) ^' j5 b/ v }
- w8 X3 Q7 k# S# _ this->runFunctor();! |. L, `8 n! \$ ~7 d! x; ~4 n
this->reportFinished();
! N* @4 t; c$ l) X& x }
1 x; `: l4 s) _) k P5 V% w' Z4 e: P};
# L0 r" ]2 f4 t& I I: X. c
4 `9 e. r; p2 ]/ I3 u} //namespace QtConcurrent5 T$ a! L: G* F
( [/ |2 ?" r# k: N#endif //qdoc
! x/ v0 ~% y+ J) Y; M9 e. ]. M5 i8 }; P Q e7 L) q8 _0 U% \
QT_END_NAMESPACE: U) ^& ]* ]$ H
QT_END_HEADER
# ?2 }' [+ V7 X7 ~- H: v9 F4 g
#endif // QT_NO_CONCURRENT" X' E# |$ Q* I$ g$ J
/ A1 V# q1 B' |# r+ U
#endif* A4 h q+ ^( y7 S$ M) n4 ]
7 j1 ~4 h5 R& N- |: @
|
|