|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ B9 Q' Y6 q: ~ X# l
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
8 G$ k1 [# @7 C, y% p. C3 t( |4 T! I# _! u7 ~" i4 h
这个头文件内容如下:
/ e# S v) G: M4 n0 T- C#ifndef QTCONCURRENT_RUNBASE_H
" P3 h4 B) F3 N! t. K5 j#define QTCONCURRENT_RUNBASE_H
& x+ R! Q$ w1 J" M/ u, r* T( i6 m% b; s; s/ i' j
#include <QtCore/qglobal.h>
$ a5 f9 h3 t$ H' I' g6 [1 F3 S! ]0 J" n7 x' g2 X& I
#ifndef QT_NO_CONCURRENT2 D) c- _( A4 `) o( b, C' t
% r3 R* d1 | X4 r#include <QtCore/qfuture.h>
) m3 E2 x+ W2 d/ @#include <QtCore/qrunnable.h>
% C5 r, b2 u5 _0 s( u" W# [; _#include <QtCore/qthreadpool.h>
& p( g2 }. w0 c! @! n, \
9 \! ]% y( G5 P2 O* mQT_BEGIN_HEADER
- o/ Q/ f6 S& n% J3 w- W xQT_BEGIN_NAMESPACE
N9 u' L+ F3 }) v& F( K. p/ v7 c( ?; g
QT_MODULE(Core)3 Z# ?6 m! D" [8 m9 n/ t9 Q5 f, `
3 W4 J- m6 B0 E" [#ifndef qdoc
+ Z& `/ _7 {1 _0 g- y3 C/ ?" P6 L0 k" b1 C; o
namespace QtConcurrent {) C& m; J! c# \' \+ _, Z
- L+ ~2 m. S1 Y
template <typename T>7 z& K+ P" [2 x, z
struct SelectSpecialization1 {# A0 L8 I' }; d$ R
{" T3 j/ T2 ^* h( w& \" ~/ b
template <class Normal, class Void>
+ t% A0 Y3 Q7 R' y) k5 m struct Type { typedef Normal type; };" b* j. a/ ?; X% `, X# Z% [
};( y* A( ~) D- G0 V$ D6 t
' O, O( ^0 x5 d1 Z
template <>
7 V2 I6 d6 f) Y3 T0 T' C# x' Xstruct SelectSpecialization<void>& S/ R9 n9 _& x5 j* J' a4 c
{4 U$ l5 k9 u, U. t" _" H
template <class Normal, class Void>, }# |5 T! \3 {
struct Type { typedef Void type; };
) f) }9 @0 a' F, z. \};: k- ~/ Y" c% k0 B2 [+ ^( I
/ {- l g: q5 @( e) A+ p' C8 ~template <typename T>+ d# w$ R1 Q$ A, \. B
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) [+ ^2 g/ B/ I{6 r' z& T- D# Y" ^1 _6 t' b
public:2 }/ \6 f. [" D: [
QFuture<T> start()/ o" I' u9 d% S
{! l. D4 l# l0 K& x0 g6 N) b" ]
this->setRunnable(this);" n) m% [$ H$ {* ]
this->reportStarted();% ^" M5 K1 Y% S- E5 Z" ^; T. H( P
QFuture<T> future = this->future();: k4 n, L) T3 `% U) N9 ?
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); ^! D+ m" k4 P
return future;1 L5 {1 S" Z* [9 E/ F; P
}7 a( y8 D. K+ |; T6 s
, y5 G3 ^8 ~- J9 x/ `
void run() {}' T& l* R. A% d9 x
virtual void runFunctor() = 0;
3 o7 Y8 q0 s* h8 D+ P};* m8 N, N3 m( R& c4 q! u
0 |/ F8 o$ I- U% k% k( j0 A
template <typename T>: H7 d0 ?7 f/ J8 p5 j
class RunFunctionTask : public RunFunctionTaskBase<T>
+ [- h6 y( B$ R# H1 m: O{$ o% C+ w% K9 N' f
public:8 o3 ]$ c8 Y8 m: X" d# K
void run()' m+ r$ X7 S3 t7 x5 W% Q
{6 P/ y: }' i/ D N# r& d3 W- l
if (this->isCanceled()) {
: w2 L D9 s' j8 v3 @. y this->reportFinished(); y6 P% |, W% u1 d4 m) L
return;8 U+ m/ | x" Z% ^
}6 W$ ^& b* q' P8 i2 O
this->runFunctor();" [7 ~" R7 f, ?. ]" O
this->reportResult(result);+ [+ s3 d& w' Q* t1 e
this->reportFinished();
/ G) B* J6 {, z* ]& H2 o }1 a1 O. G K5 \' A
T result;
( J; {/ B( F& ~! }* n};
- K, Y2 V/ j* P% m2 ?9 M+ y4 Y$ X6 r! X6 W$ Q
template <>' o* ]9 T) _* C
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
% {3 V3 u2 U+ g6 c1 @# M/ G{
3 m# o' P, T7 ?4 _* [public:
( t/ _& @# t7 e9 x# x2 ~) ^& Z void run()
2 c6 _0 \' _6 ?# @* O* }& T7 m {
; f7 q+ K2 Q9 M if (this->isCanceled()) {
5 M6 k& F2 `5 \/ ]* q' s0 c" z this->reportFinished();
* U5 Z. y* P( Z- G7 G% }# e return;
9 r3 @ y9 i+ ]+ v0 M }6 e6 q- N# m0 j/ z* J" M
this->runFunctor();
9 `, [6 n. L H4 ? this->reportFinished();
8 {# D/ R$ L j- G# @7 M }5 ^2 _- Z. O% Z r [: r) t
};
- ]7 E5 `, M5 @2 {# ~) k) N, [7 q9 q: L' c$ C6 ^1 T1 |& v
} //namespace QtConcurrent
0 Z& n; u: L2 g5 C* G4 r
$ r2 D& q3 K0 x0 j+ Z#endif //qdoc
" P7 O% l% h+ i# a
# n0 Z6 V( G% x% `, v7 s1 ]QT_END_NAMESPACE
, c" r" z) i8 V: UQT_END_HEADER* I3 z- C! h L5 t: u! U
. e/ H$ E- O' _! X7 H8 H0 _: ?: X5 Q#endif // QT_NO_CONCURRENT/ b6 t: u; i9 `+ }5 }5 u1 c3 b4 z
$ z: G+ r3 K8 e% @6 W# m" t0 \( N
#endif( @9 \: o; w1 I1 E. ~
# I$ y6 d$ A6 t, S( g& ?$ J9 A. l4 F7 n |
|