|
|
我对syslink进行交叉编译到arm,但是出现如下错误:6 L" Q8 m2 @7 ^4 Q, [5 z5 U2 ^$ U6 W1 {
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'0 `: L. R( b H/ n
/ F4 f$ n: ?0 h& A" W( r6 A/ G
这个头文件内容如下:
0 G8 } j% O- [! K#ifndef QTCONCURRENT_RUNBASE_H: F* j! q+ B& ^9 |! y" Q
#define QTCONCURRENT_RUNBASE_H
& { _( e. ]1 _0 o$ C
4 E: m: D4 `9 Q/ O( R( {' J& J#include <QtCore/qglobal.h>. b- C8 A. E) R6 `' z& N1 w% j
, H+ ?3 x; C, B- W+ r$ Z
#ifndef QT_NO_CONCURRENT1 _9 L. K* l' ?, n+ w
3 p" ?, a U: y1 s
#include <QtCore/qfuture.h>
' G7 S9 l% n: r" h3 Z#include <QtCore/qrunnable.h>/ `5 E# U2 m; U; O0 m# x# [& ]" A
#include <QtCore/qthreadpool.h>" |! y9 P6 v l- T" a& I& w
, k2 b4 [. K$ L' IQT_BEGIN_HEADER
4 t4 J: \8 j: n( y" F; l, jQT_BEGIN_NAMESPACE
- m$ _, u( o& X: u! {* B* n$ ]. D$ m" h4 Y5 H, _ z5 _' n
QT_MODULE(Core), ~8 @" v1 S! ~# S8 X! w8 x% X
3 G& ?: X) G( Q8 V" v" F2 \' {
#ifndef qdoc
0 i* o6 \$ q/ T5 M% `6 o- S! j
6 T. P+ x1 F" S$ `) \namespace QtConcurrent {
, e! q, H8 Y4 _& g# A% C4 T" T( ~ ]: j% I% |$ A+ X
template <typename T>
0 a" l& K# M+ N. K5 q; Y* g+ Gstruct SelectSpecialization
9 E" d, W) `( P8 I! ~{
& z# }$ e' H- U `* d4 f5 G4 b template <class Normal, class Void>
2 q* H% }) g2 n: w- a9 H0 f8 A- f struct Type { typedef Normal type; };- z) ~1 W4 V0 U" ^' m
};. [: D, m# V/ V$ \, N/ S
7 D5 M7 ] o4 ntemplate <>
6 L$ H* I# }& k1 E8 `struct SelectSpecialization<void>4 P* o8 C( u; q. s4 s x
{
0 d/ X1 p* O* j' g G6 \ template <class Normal, class Void>
( B7 K* A9 p, ~* Q& U' v- x8 |# i struct Type { typedef Void type; };
5 S+ j% b, _, c" w1 K! |1 m2 T};
9 _# U+ V- w+ A1 C! ]8 m4 P; h( l% t1 @- C
template <typename T># n0 }) `2 Z/ H' w" p E
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ J. Y$ ^9 f2 `& X/ n. s$ G, M8 X( R
{' `2 s, v$ ^+ p, j* I* b5 l; V$ ~1 v
public:
! e) j4 t' W& h QFuture<T> start()
# u8 j/ ^) Y' j3 ^: d* \3 a {* ?% t# R" p I
this->setRunnable(this);
. g/ n# G2 O9 q7 ]' s this->reportStarted();7 c7 w/ D6 ?3 y5 j) D
QFuture<T> future = this->future();" t* Z, t# Y7 H, G
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 N; p: b9 a2 x
return future;
% |0 ]! ^4 q8 |/ A }5 h; @0 C1 S+ ~# `
. E( f- w( B+ x3 |7 k- b7 z void run() {}# I$ Q1 [3 Z- f, V+ F
virtual void runFunctor() = 0;
7 G; o; b7 n4 v};
; ~6 ?: D0 x& t& b8 P: V6 o
# P3 |2 l, Z0 l( B3 X# y) ntemplate <typename T>5 T8 _1 y$ B7 u, Y7 U6 @9 `& _
class RunFunctionTask : public RunFunctionTaskBase<T>( k' W+ W$ P, j2 {5 L# G( X7 s
{
0 V! o6 t( P6 o ipublic:4 q3 i" q5 g- I7 U' O# s2 M* o
void run()0 T9 S: e, c) S3 v. c2 h% Z
{
- Y& P; x3 J2 A/ c- f2 C if (this->isCanceled()) {; j1 Q% \7 \5 b; m9 v
this->reportFinished();. z- ], d5 w7 }: j: K* E
return;
: p( _, e W& ]) C' ? }3 Y; z! l% s% w# g2 D* ]3 a) e2 j# W
this->runFunctor();) x# ?0 ~9 M; ]( ]+ r" P' p# [
this->reportResult(result);
; Y; R$ M! Q2 G9 P7 O/ g/ J this->reportFinished();2 P# |" O& F+ s6 n5 A6 M4 u
}5 P: {' G W3 X1 f' j+ }+ o+ c
T result;! C0 N6 d' l# z5 _
};
, p1 I$ ~* @1 t1 x' \8 b: @
' U* a5 @8 J1 J. h# F1 j" Itemplate <>6 F8 x$ X3 T$ A$ d1 q0 i
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
' x D7 ^( N* h{
% a# \$ k! e0 j2 T6 l' i: o. Qpublic:
5 W& h% x4 [6 s* u$ H; Y void run() C( f; q8 a, E* V. m
{
' S$ i1 G4 |7 S9 ^ I/ h* K0 Q if (this->isCanceled()) {
?2 V5 A4 [$ H1 ?/ d this->reportFinished();! A0 ^+ W- C$ q
return;
" B1 j4 D$ b, z5 Y. J, @# V }. i1 [! P2 d9 f6 g. D
this->runFunctor();, ^: x! p5 R9 B* ~$ u) b3 X
this->reportFinished();" K( D: K: \/ a& o5 k- R8 W
}2 R. L& ]) r& Z8 Y, t
};2 _* p/ I9 }! s( R" v3 ]! z0 p3 G
5 l" E* l/ r& C `" \3 M
} //namespace QtConcurrent
2 _* K* s g' Y( \- O
' y5 U' U. {/ @# ]- _) o0 O#endif //qdoc
. Z ]' S% r/ `& B" ~& F
( c5 m+ N( Z! l$ tQT_END_NAMESPACE
6 v* }& X+ V, r2 ]" SQT_END_HEADER
& w9 Z2 b6 z6 i& u8 m7 \* d( J. D& d5 S8 M. H! y; A; u ?
#endif // QT_NO_CONCURRENT
+ q5 Q' p/ s7 F9 ?& t; ]8 G" ?8 l1 n, b- J
#endif
# W3 j) t. u, J3 B; l" I$ U- O% D! T: `( c
|
|