|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
, \9 Z" v# u# ?* g0 S, [, 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' n/ X) ~& ^( `( u" ?, v
; L4 x5 c* P+ O+ T) {
这个头文件内容如下:
+ H0 C. A& Z$ d* W#ifndef QTCONCURRENT_RUNBASE_H
+ X) l3 I% `2 R#define QTCONCURRENT_RUNBASE_H# g7 G& y# b6 U) ?' ]/ \
% U% N+ @% j, S! i, V#include <QtCore/qglobal.h>
& U+ t) |. o' s' M- L
8 ~# [8 f6 c. T#ifndef QT_NO_CONCURRENT
+ v+ v! B' N9 R$ ]$ N+ C9 O/ \9 y
( N$ q2 d0 s5 f3 p0 A6 x4 M#include <QtCore/qfuture.h>
( t3 `$ Z7 }! @. q# y#include <QtCore/qrunnable.h>
' g, `+ K+ }: ^9 k' Y#include <QtCore/qthreadpool.h>. q1 r+ W0 v# {
* B# Q% R# q% @3 g0 J3 u5 a. q! U
QT_BEGIN_HEADER- v* O9 Y, I& Z2 d% |
QT_BEGIN_NAMESPACE% D4 U4 I4 l P/ Q+ g
" h3 {* C; x% o# k) P4 ?" YQT_MODULE(Core)
+ D8 @! P* c; F; w$ D2 C) ` B! t; x( B+ d b0 P# D( g) W. O1 O3 E$ k
#ifndef qdoc
6 {# z9 h4 Z3 }4 l) z5 O( n5 P/ h: _9 f0 [$ k
namespace QtConcurrent {
! n4 l. ?$ {$ u6 d! E
, U, O9 J. }8 |2 M4 S, I. m% n. b' Btemplate <typename T>
, N- N1 Q" I" e8 Q5 ` E. vstruct SelectSpecialization: p: B v, h& t" W2 V
{* S( H9 m W& q4 t$ Z! Y
template <class Normal, class Void>
U! C) u5 H) T" K$ A8 B* E' x# e struct Type { typedef Normal type; };0 x9 S% y* n7 b/ L
};, e, M+ l1 Y L$ {2 M
+ U5 P8 C @" o" wtemplate <># I |5 j5 u- k' D4 {8 c/ l& X
struct SelectSpecialization<void>/ M' k5 ~8 f0 y" ]! e
{
6 n2 y1 Q) t! C: b template <class Normal, class Void>
% V. ]# w$ L% `, c+ |7 V$ x struct Type { typedef Void type; };
! V$ \. h! z4 Q};
& F4 K. t4 y7 L1 F6 y i7 h. I
) p+ _6 |& c5 Z4 |$ z) C" r3 ltemplate <typename T>
! v; N; Y# U, ?class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
w8 m1 |) T9 [) _* j n9 w{& u5 H4 F6 z, ?
public:" h. S3 o* v: V& @8 V7 L0 W! t/ j
QFuture<T> start()
4 P) a- C# K/ ]0 X, ?1 @ { P7 J; F' B* Y
this->setRunnable(this);( }2 n! g2 g% x
this->reportStarted();) G+ M7 {9 L2 | }
QFuture<T> future = this->future();
r! E' _2 d! ? QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
7 ?& ?4 c9 c3 v" V return future;
0 l# v& l( d5 T4 X7 s4 R }3 g6 \0 {) q+ w' Q/ z1 x: \- r0 I" x
_* d9 m: ]- \/ ]3 R0 ~6 i' w0 D
void run() {}3 M' F( r" g3 M" s( J
virtual void runFunctor() = 0;+ ?( ]. x" ^ Q4 o
};
, i! |! ?0 e+ A E9 [5 s9 E
! }- G/ w3 D. {; c9 R5 }template <typename T>
/ ~0 @; u9 l8 |% r* Z( Y- I/ Wclass RunFunctionTask : public RunFunctionTaskBase<T>1 U) T! T" d2 c7 ]/ c$ m! W
{
& x* t! m; ?5 ypublic:
% J; {! D& [6 V/ e( H5 |, f void run()( ~; T$ ]! c7 ?7 h* S
{
' \9 \, h/ d% _9 q. J z if (this->isCanceled()) {
; i* G' N- Q1 p5 ^+ X1 Y this->reportFinished();* t. W/ p5 p0 c
return;4 C0 B- N/ Q2 b% z2 h, l2 p
}- M1 |9 E, w# A
this->runFunctor();, V H( D& D5 R
this->reportResult(result);9 k' A3 u9 D0 T+ i% e3 U% s5 v' |6 L
this->reportFinished();5 q, n7 f$ n* n& y* g+ {
}; U/ }. v3 n, G' |$ t9 n
T result;
& {5 v7 j& ^" H3 \};
0 r# U5 I: v- B+ [, r0 S5 u2 ^( l; `, z B( {0 A
template <>5 A' J, r7 d: E8 N, o
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 @" L* V6 C) V+ ?9 a{
/ O( d& z$ Y, ]+ Opublic:
: ^, Z; Q; ?9 x0 e3 q& ^ void run()
* J5 ?/ ^ o6 z. j {! ~+ ~, a7 s+ o3 Z& H0 M
if (this->isCanceled()) {
& v9 u( `3 p& b/ n% T5 _% Y8 q this->reportFinished();
: C( u2 w5 f$ }* w* h, s8 ?- _7 l return;0 m: ?/ ~8 r+ D
}
$ U0 F1 _9 s( O/ A# O this->runFunctor();
% Z h* Q) M4 Q1 \- V0 A7 B4 A this->reportFinished();2 F) m7 v# _" ]3 C0 N& [3 I
}
2 r" d, U3 |+ h3 ~, Q, f0 r; S};% l( [. ~/ Q" g) [4 H" i8 n
: Y9 D, R$ S8 X6 `! ^9 A/ J9 s
} //namespace QtConcurrent6 ~4 S' m3 k+ u) c) M
. a$ I- {6 {' ~+ E" m! y# t
#endif //qdoc
, b5 U( Z/ x( r3 N+ r [! T; M9 F7 l% G2 C* \1 R$ U
QT_END_NAMESPACE% y' F1 g' }; N3 c$ {& ?8 l) @/ z3 ]
QT_END_HEADER
9 U+ ~+ w( }. n$ u" C
3 W: G0 H9 Y9 J4 ^#endif // QT_NO_CONCURRENT
0 W/ O3 I6 N3 P* @1 r) X
( J, {% E' J& O0 u" W#endif8 i. Y" @$ ~( U- o. \' p
& q; R& Z2 T. R; n" t
|
|