|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
, n6 {) q# G8 F5 m* v/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% D+ t& I j; U q, R. N1 m" j
9 Q/ C: M6 [, L5 ^* ]这个头文件内容如下:6 u; H$ {2 s+ i; Z
#ifndef QTCONCURRENT_RUNBASE_H
4 h& m$ S) Z; h( n2 y# q& c#define QTCONCURRENT_RUNBASE_H
' |5 n5 W5 S: ?# u; m- |! S: y. V N9 s- R0 D9 l! X
#include <QtCore/qglobal.h>3 V; G1 _/ }' C+ }% N' r
2 L* |( \" `& a3 b
#ifndef QT_NO_CONCURRENT8 x8 C+ E# Q$ ~% d
% D1 h# l3 C# e) l#include <QtCore/qfuture.h>
* Q. J1 ]; {" d: r#include <QtCore/qrunnable.h>; X5 j( c4 j* |' q
#include <QtCore/qthreadpool.h>8 x" ~/ y' o9 N$ ^% R8 l% h
$ K3 J9 k( u, K6 }, pQT_BEGIN_HEADER6 X; m; N G8 S! K4 Q
QT_BEGIN_NAMESPACE
: o+ ^. R9 F8 Q# k. U- A8 H# A1 @0 ]! h! c! }0 s. ]/ {
QT_MODULE(Core)
' V' N9 W6 S- L. O6 z. N0 O" \6 Y- H4 z1 s" C
#ifndef qdoc
( Y& m* i' p# G( G0 G! Y4 A1 O. J& Z% p" {
namespace QtConcurrent {
0 C2 @* @! e- G3 I9 S" L1 r/ |- {& `1 l' t/ h8 ]. w3 R u* R- c
template <typename T>
5 y( h/ w3 H. J7 }7 R9 _ K' vstruct SelectSpecialization
7 K U; `4 ?6 d2 n0 L{
- {+ ?6 @0 x3 R: \2 t* V( g template <class Normal, class Void>/ ] B) |; O: L
struct Type { typedef Normal type; };4 S0 n3 y% _" S9 X" a4 j
};# ~# A4 c4 w+ ^& _: N7 }/ N
) W/ E7 \& K5 K2 }) |/ F% J6 z6 c9 qtemplate <>
4 {! p/ i2 |4 x+ ?, U! n: Mstruct SelectSpecialization<void>
3 R- h X8 o* |1 |* ?; Y* ?; x{
1 h% E$ \' M" w% |+ j0 a template <class Normal, class Void>
* U% S' H$ @) x4 G( t6 m struct Type { typedef Void type; };
6 W) z2 {2 U5 e};1 w6 @! O n1 v( _* A3 @; e
! Z5 b6 N, A- L/ ~
template <typename T>1 k$ |$ B' w% j; _
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
' \0 X5 s2 N/ r; |' g" E) ?{
! [8 C* A: Z! T! T" ]4 apublic:# u* ^2 p3 L: y2 R! ~0 t
QFuture<T> start()/ x& f N$ u- I5 a
{/ `# G7 A4 v& R6 K
this->setRunnable(this);( e9 N! p/ _. ]5 }8 K
this->reportStarted();
; @6 G0 T# f# w- j QFuture<T> future = this->future();0 U+ s2 J+ d& `0 b
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); P6 d; p- v% |- Y9 F. z( c
return future;- r4 [" s1 f7 y3 F( T3 @: z1 y
}
- F+ J, r/ R, }5 n/ Q }$ U: q+ O
, Z) J; t/ w7 W/ M' e6 p8 G( B7 u void run() {}5 `* S( l7 I* d
virtual void runFunctor() = 0;, g1 n4 R) j# \6 O4 m0 ?: w
};
7 Z( \2 a7 S2 G3 U
7 k* p" N1 c3 u& q4 S3 P6 Ztemplate <typename T>
, i) H8 g2 [, D3 ~% Bclass RunFunctionTask : public RunFunctionTaskBase<T> a1 u0 f. C! D, E/ L
{
+ a+ b ^6 m. _) _' _* Ypublic:# T6 R( y, }* }$ ~" i6 P! G
void run()& @7 D$ C& P. Q6 e4 a! d
{* |: x( ?3 H% z" E' F
if (this->isCanceled()) {
. b! L: x( A5 S- r6 g this->reportFinished();! G; Y* a) }* u' j, F
return;4 B; m8 {; v) `) O8 T# K
}
. ?6 N o6 s! Z, ]! {; n6 e this->runFunctor();
3 g ^2 V* I Q2 l5 _* o this->reportResult(result);
1 b6 Y: A, Z: p+ u- Z U3 m9 Q this->reportFinished();7 v6 H; _, z, b8 l( \, J8 L
}/ Q* f# z* w3 x7 g
T result;
2 T3 w4 y( p/ y1 q};7 j% T- k6 b$ J0 f1 [$ c* c) B; A
, N: W# U! }! ^4 ~' v
template <>
* P# l! E$ e4 pclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
# e% P, b8 \" P: x- J5 z8 C{
; x6 [+ H" |3 V$ \. X, z1 hpublic:" T/ W! k C- b/ F( V- z1 t6 c4 a
void run()
. [4 T. k! i; @0 [ {! d( w9 H3 O$ h" p. g
if (this->isCanceled()) {
/ k& _% G/ R% C" {; x( j this->reportFinished();2 D! e( p! x/ e. v' l% l
return;
9 T) j0 |, ~8 \ }
- Q+ G- \0 o6 j: p! O this->runFunctor();
* [/ i- @' E# ~* Y% ]- ^& J4 @6 C this->reportFinished();
; t$ o, u1 U# T8 P5 ~! o }
5 e) L1 y/ j$ B* _2 i$ }};5 e! m: k* w3 z+ U
; l; Y0 }+ y1 ~. ~$ M( j) y4 h} //namespace QtConcurrent$ ~ w6 d( X: c% e. h
* e, j, G7 b2 Z8 D% _- |* p# n#endif //qdoc2 G' h" `/ x3 J/ k$ g8 M% |" K$ z
$ p* m" ?1 n- ^) L$ f V# {
QT_END_NAMESPACE! F W: m! X/ y- @' M: c, J5 q5 p$ a
QT_END_HEADER
5 S' Q4 X; W; \7 b [# q2 s: P% j
- U0 a% Z4 J0 U+ }( P5 ~#endif // QT_NO_CONCURRENT
+ F f8 T( s9 r. B" \: m
: f9 r5 @7 s- x8 z. j* T- O& o#endif3 E+ Q2 L" r- |- Z
$ V* A- B# O) V1 } |
|