|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" K) W3 n2 p3 c$ L3 ?
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
! l4 I, v$ L0 Y; N- z7 m+ X& s; m6 }0 g
这个头文件内容如下:
8 \& g; W y# n. K#ifndef QTCONCURRENT_RUNBASE_H
% a) W+ W2 {0 D& E( l#define QTCONCURRENT_RUNBASE_H" }/ F3 z0 x* O# J0 \1 H9 Y
* e# I! x* A7 G: q7 }1 j' X/ ^# d; W
#include <QtCore/qglobal.h>
9 `: r' \4 F1 F$ m1 y. J( Y1 d3 C
#ifndef QT_NO_CONCURRENT$ T6 M9 H/ z) |2 Q
1 `# _2 Y2 _3 y9 [% i, ~
#include <QtCore/qfuture.h>
5 k) E5 O9 g9 u4 e5 d1 a4 k7 D#include <QtCore/qrunnable.h>
/ L4 N, v% T, q/ r; a7 F/ y#include <QtCore/qthreadpool.h>. i6 j9 A+ r* n# Z
' K1 u* r. o9 A5 W3 E
QT_BEGIN_HEADER9 z/ U7 l0 x/ }4 Y
QT_BEGIN_NAMESPACE. E3 G( }" R6 K/ o: o7 I4 h% p4 }
2 J9 y$ Q/ e5 B, l* |1 G IQT_MODULE(Core)
r# V. b$ _& E. {; Z
+ M8 u6 ?3 F! C% V6 }4 `#ifndef qdoc$ j1 {" {7 r* f/ Y
+ O: ~3 Q" M* z4 L; O& o1 `namespace QtConcurrent {! d5 Z, Y, n0 y
( h: G+ U3 I! H
template <typename T>- ^. p- F3 K8 n5 w; z
struct SelectSpecialization
' {! k5 y! j9 b f{
: a4 h( y! u- s: @$ G template <class Normal, class Void> y4 ]& B9 { W/ \
struct Type { typedef Normal type; };
: L# L% A5 ~3 ~ Z H$ J" h};
6 b$ d$ {& P$ _' L7 r! ~0 u# y+ Z$ ^
template <>
/ Q% B8 e6 e4 R( ^, Astruct SelectSpecialization<void>
3 t/ V I0 x* R3 K{
( f: C# g& b0 S3 h' c1 `% C template <class Normal, class Void>0 }3 [+ T& O9 d) B# s( ]) e. A
struct Type { typedef Void type; };2 Z. b6 k3 G7 J( s
};. p2 f4 u8 X5 q3 E
- ]" j3 x- i2 @' Z O! I& N! W# Ytemplate <typename T>
2 _: ^4 ]! C: O9 t. |class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable, q- Q( y: F, A
{% J7 {5 j7 {$ L2 Y
public:
$ p+ q! ?3 d. R% _1 o: @ QFuture<T> start(): Z, i1 r: }) T4 S, `6 d
{% e- t! q9 v6 S; k+ H' Z
this->setRunnable(this);
, o8 w8 G3 a0 n! p, J this->reportStarted();
/ b8 w5 M6 E- F# _( j1 A QFuture<T> future = this->future();
# B4 V6 X8 H: |9 k& L) j QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);0 [. q2 N5 A m! r+ y9 n
return future;$ s6 @3 S4 s- T/ z! h* R
}. ^! p/ W. S. F5 A; l3 q" r
3 L. y1 h! g& J4 } void run() {}; M8 o* F/ A' D# p( R2 @( V
virtual void runFunctor() = 0;" |$ u9 V; y6 T; A1 E
};3 R1 K$ A1 j( X
8 ^0 {1 H+ ]7 C; V% _ m. N
template <typename T>2 o- z& Z1 _. L# @% U7 {0 ?
class RunFunctionTask : public RunFunctionTaskBase<T>
) D8 a1 N7 M1 W2 A2 l{' C% |3 C3 x- W/ Q- l6 n2 F3 A' q
public:0 E% k* I9 |2 s
void run()
2 N' e1 t! y+ k+ o+ D {
$ b- i, ~+ ]7 { if (this->isCanceled()) {
, s( a9 f! p% s/ Y" Y4 K this->reportFinished();
' U$ ~) L! q. a: f9 [1 l/ y6 t% M return;
( u( y k$ a6 k3 Z }
6 z. Z9 K! ]+ m this->runFunctor();
. O$ B* h' ?+ i6 p2 n/ ` this->reportResult(result);
9 r' Z5 c- s9 T; } ? this->reportFinished();
( m/ z+ c$ x0 P" ~5 x/ @5 S6 T }6 R* ~1 g! m, W9 b5 K6 V9 W
T result;& g/ A3 Q/ x* C1 ?, P6 t/ x9 r
};
4 U1 g/ A: U3 B4 |" d/ }7 [
0 t9 Y# V$ B' S, o- ~* gtemplate <>
( r- P, }, `4 G& I' ^* a% `8 Tclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
: k0 D9 o+ f5 f5 e- _: c2 Z: K. q. R{% d0 U- `& ~! K* Y
public:
' ?. v, E5 }+ x) a! J void run()
" Q) X1 R/ G5 R# k {
5 g2 d2 [, e7 r* F Q if (this->isCanceled()) {! ^" `5 k' e* t3 d. l
this->reportFinished();: a1 a. u- F3 o. H, T- @2 s: i
return;
4 ?8 ~( {) h+ N }( C, b$ o; {( R, A2 e" X. j1 L( }( t
this->runFunctor();
# l8 n2 a+ C6 k this->reportFinished();
M8 l V* X/ w1 U P. r }
_* p- m1 Y; J+ u! ]};
0 u3 A) ~, r' }8 P1 z# n |' ?( i# r- X/ F: u
} //namespace QtConcurrent
" r/ V( T+ t" @% s1 v0 { X0 D! l& v/ q+ a$ l# R* T
#endif //qdoc
& p$ K/ i" a" p- H3 t# H
$ `- \" T1 `2 pQT_END_NAMESPACE
3 \6 p* j- K$ Q9 I8 sQT_END_HEADER
! E- J/ M3 J3 c6 s! U% m- L$ p6 a9 R0 W
#endif // QT_NO_CONCURRENT
6 {; c. z% j* ], B' l0 I I4 h) I
# Z3 `7 F3 j" r2 z# R- T3 C#endif
1 ~$ M; y! f. V" o4 }/ \; Z2 w6 Q2 ~4 U* X
|
|