|
|
我对syslink进行交叉编译到arm,但是出现如下错误: E/ |9 {, m; G) U6 g& g4 U; j4 b
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'$ [3 h- Z7 I" t: }
' ` F* t6 G% S) I2 [& H这个头文件内容如下:- X: V9 }4 ?( o t
#ifndef QTCONCURRENT_RUNBASE_H0 e6 h( u1 \2 K7 t# ^) J" M9 d% P
#define QTCONCURRENT_RUNBASE_H
5 W8 J8 b2 _2 C% A5 E. r, |* E2 Z0 s, e, s7 L" [4 }+ F1 a
#include <QtCore/qglobal.h>
* A& H, {& Z! u9 D' a/ z: P( }! q6 Y r8 m
#ifndef QT_NO_CONCURRENT
/ F- q3 a1 x( f" J9 m
/ }( V8 {8 Q% Y; r# k4 }& |; D#include <QtCore/qfuture.h>! `4 n/ G" [0 Y2 k9 h
#include <QtCore/qrunnable.h>
! n- P) ?& J0 m2 q, r$ A; S#include <QtCore/qthreadpool.h>
2 K2 X9 S6 t/ O3 n) y0 g4 U
. E1 v) m2 f* H+ V" T4 G9 {$ ~7 tQT_BEGIN_HEADER4 s% U% x( _. n/ P" d2 q0 t
QT_BEGIN_NAMESPACE
$ z7 U5 j0 f; G( y2 i0 M6 h% c- A% ]# h. S* h# r" I# J6 m
QT_MODULE(Core)5 c' ?5 N8 [0 H# K
" ^4 j0 h9 L2 a; A! L
#ifndef qdoc
( x4 ~3 }# S2 ?7 K1 j2 |% F' T W* N/ c' E
namespace QtConcurrent {4 t; W9 P- g$ q5 q) P
0 {! u8 z7 U' W3 P& T# A+ Btemplate <typename T>
$ B3 r0 m5 }0 ?3 `+ o( W+ }struct SelectSpecialization# Q- u1 Q- z* {6 _7 T1 a
{% {1 K/ _4 c! t( K- d5 \
template <class Normal, class Void>& j @! b1 {8 R
struct Type { typedef Normal type; }; b3 d8 ~. D! ]; X/ H4 N0 `
};" H2 A3 {% \6 ^1 I5 p
4 N7 [! |5 P, [" X7 B
template <>
5 K# x* Z. M. z" B: r( `struct SelectSpecialization<void>
" }# k/ a. o8 {% T{; \# {4 p' G$ X, R& _0 _
template <class Normal, class Void>
6 Z# u+ k; f6 ^! R$ n& ^4 W$ R struct Type { typedef Void type; };
- w1 S# C( b6 K; r6 S# `};0 |- ~; _# K( P* @
# S8 p4 M+ a* C3 ?; j( A2 a U( Qtemplate <typename T>
, @1 h% X: l; m3 M8 R, ?class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) ~9 M) {6 f$ K% W0 r% Z9 f- N/ n{- ]! o( i1 A1 t0 j' i3 c/ b
public:' f. Z1 ?. j. K: k% M
QFuture<T> start()
) f$ _" P N! D% ~6 s. V% W$ c0 w7 R {
- B6 ?) ]1 h2 w5 T$ ] this->setRunnable(this);$ ?9 }$ o; b: T, r
this->reportStarted();
# c# Q5 W/ p1 \/ L9 @. w. ~: }/ h QFuture<T> future = this->future();/ S; P/ C5 V2 }# ?, h: s
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 X) k# O1 ~+ I1 v7 Y return future;( [1 _9 d5 a5 ?
}2 F) [, { ?. R, \- [. i
# _$ Z% i# ~5 K( C# \5 R ?1 n
void run() {}
% |5 j. h& m2 b/ g O virtual void runFunctor() = 0;. C/ v7 _$ b* L+ E) O
};
* i) @, _/ p$ m% N) n
4 z2 H5 B" I4 {; U( Y1 }template <typename T>: q9 m$ Z& N& o2 O
class RunFunctionTask : public RunFunctionTaskBase<T>
, Q/ ?$ G3 ]0 V1 Z{
4 G2 _" e k* c7 X& _5 Upublic:3 U1 r7 P' l' _8 Y4 E
void run()
9 I l5 r/ H, n$ t {- R3 Q- d6 _& ~/ N; K4 P! Q
if (this->isCanceled()) {
* V }, b+ N, N, \3 K1 H this->reportFinished();' X( m4 p/ ] b
return;
8 h5 Y% R6 E& D& N6 s; ?, _6 [ }
+ S3 `6 D# g/ E" t2 @$ w" L% t! M this->runFunctor(); r2 A3 h* N2 L- _
this->reportResult(result);! `4 _6 F9 o7 S4 v7 W
this->reportFinished();7 d$ o4 F5 ]; ^# a7 f# Q" `
}) ~/ ~& V2 m- O/ {" j0 s2 Q3 o: E
T result;1 Q$ l. e5 b" C V2 s3 u/ Q
};
9 I& M" w$ V% J" A o2 _4 P$ P* q( D! a0 l% g- ]
template <>
$ ?7 [3 Y# U' U$ P; D, g3 yclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
" H4 ^) Z6 i: }1 I: p" H{
) F8 S9 x$ `- Z! g$ N$ jpublic:) m, w# R7 z8 A# X* p2 \" D
void run()
: }: z+ V" P; r$ D4 a {4 i5 K. v2 a& h. @
if (this->isCanceled()) {
$ C: i. e9 e2 u this->reportFinished();
/ }7 d- W, b8 L0 @1 A return;
, N7 J V4 W; N8 F" w) H }
' K% n) m- S1 L. n: u. ]1 l this->runFunctor(); _# g+ e% @# G3 L/ m- I8 \
this->reportFinished();
( ]+ H/ w( \/ q* H }, ]3 ^/ i0 }5 k- m) _8 Q
};' T/ o* h0 Q' k
' V4 o+ j3 }4 g. w( `
} //namespace QtConcurrent, S9 a' n# D$ n) }+ b
( G/ m% }8 J. K P#endif //qdoc `5 D4 H4 Y6 F/ b$ L5 |0 K6 v" g
" f9 p8 h) @3 ?# J& gQT_END_NAMESPACE
( B( g* \ g4 q: DQT_END_HEADER
- ]* \$ u6 F/ E, X" S% ]
' Q$ {; ?" v3 `( r#endif // QT_NO_CONCURRENT
- `# N4 D! q0 w0 v0 O7 u/ }# K: {/ z* {0 k2 d
#endif; m; E0 {) T$ \* |, h/ E# |! }
9 R+ L- O* |7 a3 V) e5 O* d' m |
|