|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
+ d7 B0 a, {) {- w+ {/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
" F# b0 m. g+ a; O, k! |& {# h( i8 c2 [0 A6 l
这个头文件内容如下:6 K8 M+ q9 D1 H; o4 N( p
#ifndef QTCONCURRENT_RUNBASE_H/ F6 n6 q8 N/ k& n- p
#define QTCONCURRENT_RUNBASE_H! ~/ ~) x) R: x' T/ Q Y
; W: \+ M; R/ j: D#include <QtCore/qglobal.h>) l4 T5 [9 {8 z4 ?
$ m: J2 z: ~. F# a( U#ifndef QT_NO_CONCURRENT4 I+ U! F) ?0 }0 m4 i
8 o* u' z1 `/ Z8 k" ~#include <QtCore/qfuture.h>/ n2 o8 z: P9 N" N0 E i% G
#include <QtCore/qrunnable.h>, G$ j+ d- I0 `) x! D& f2 ^+ D/ H
#include <QtCore/qthreadpool.h>
% ]& J$ }* @/ a$ j; T
2 L- A+ u6 `" g( U) k. o+ @QT_BEGIN_HEADER
6 D. N. L6 O8 y3 y( sQT_BEGIN_NAMESPACE
& F. B$ V8 W/ B$ a
+ T+ F3 x" b) P5 TQT_MODULE(Core)
" V) S- J) ^& a: @
' b& F& R6 p: W3 {/ ^#ifndef qdoc, R7 E* z* _5 i3 u* ^
9 [- e4 k1 `& }& s/ ~) o
namespace QtConcurrent {
; T; k: J& B* x+ s. _" ^9 x ~, |9 o& A' M# g' v5 W& m
template <typename T>
7 Q: H7 A; l' n. n$ E2 s9 ~struct SelectSpecialization1 h. }& P' C x" Y1 W
{
* R( C, ]! x" { template <class Normal, class Void>
( g# m% w7 g! G: I4 E% A struct Type { typedef Normal type; };) K% q/ v7 C0 }( R. d) u
};( _& ]& C c+ S8 J( m
! W1 P5 R/ O2 f E% w* D; ztemplate <>
) A5 s; h2 g' e4 J2 astruct SelectSpecialization<void>
. _; b1 W+ K: u% }; r; U" i{3 q% u9 p& s2 Q1 C1 ?+ s4 S3 G
template <class Normal, class Void>. \, x9 D; v) _: j
struct Type { typedef Void type; };1 q0 M* L/ N; V1 c, ?* [
};
5 A# f( A$ D6 f+ j3 J
% G" s; {! Y* s2 R! X% r- R5 Ctemplate <typename T># }: f. {! z7 R6 b M7 o
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable* L- T7 z# T+ }3 H& ~- ~$ a. S) t
{
' c9 o7 C$ Z5 [# v) M) }public:# f* x; {: Y l0 Y6 [% D
QFuture<T> start()
* j4 m" ~5 p- ^$ F2 E1 ]* t/ B. Y {
# N; B1 h# B% a5 [0 |6 e; H& I this->setRunnable(this);
+ K, l A: E } Y l this->reportStarted();/ Z8 w& _3 C, @+ b: r
QFuture<T> future = this->future();
4 c/ N$ M& {) G; o; l QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" H' F) b; ]1 h2 e/ ?8 P
return future;* _3 V. `, @2 L$ I8 ~5 s' H
}1 Z/ ], F$ ]! t% J* N7 O2 E
& Q* }: K' x ]& j
void run() {}, @& i9 n! n8 P% K$ M" r- N' v; e
virtual void runFunctor() = 0;: ~' ?3 l( [7 Z9 U3 I" m0 Q
};
& w3 c. M F+ t* |: }/ {' E o* d- G, Z7 P7 c8 _! a9 B1 X
template <typename T>1 b! K: j; Q& K t
class RunFunctionTask : public RunFunctionTaskBase<T>, p8 E4 d) p5 I& j% L d/ x2 s
{
9 |8 B1 F! b, ppublic:
2 e5 `/ I: ]5 H( T void run()' w5 q- k! h6 I2 P, E! W7 D1 _
{
! y2 y/ ?2 Z9 M m( i if (this->isCanceled()) {. D G- o: a! k) ?2 r
this->reportFinished();& p/ ~% R; U3 u2 j4 p2 G( m/ s+ a
return;
; R7 C @+ ^( E( s1 ~ }
1 b: G* W# A) b O this->runFunctor();' e' F! [+ M: y( y1 _7 G
this->reportResult(result);
' C6 @- {5 V, \" U- N) k this->reportFinished();
5 Y$ v r- [8 ^4 E3 _ }) E& h; j5 @$ J/ \- P+ @; ^
T result;
+ g- c' P( A- Q, K};
0 I. H! z; I6 V) M0 ~
+ X" z9 D% x" O% Z# Z" \2 x/ C: g4 Jtemplate <>) `8 _, M% [9 ]1 j/ s* P: d
class RunFunctionTask<void> : public RunFunctionTaskBase<void>* ~4 o8 h9 T, ]; k: X9 Y
{1 m" M0 t' o3 X: s u
public:
# E! P( E5 l- F# [( o' F9 X' w void run()
- x% D. d e9 s7 C0 i+ Y% j {
0 ]5 ^. ~4 X" K if (this->isCanceled()) { m1 L t F/ m. l
this->reportFinished();
8 m% N5 t! [& q0 T6 d8 f' j return;7 A/ j4 B2 W9 {6 Z B$ u5 p* {
}3 f: ^( Q6 X# Y. P
this->runFunctor();9 [. T8 s8 p; L" J; `
this->reportFinished();
8 ^; t* L5 ^0 o! r' f4 X+ C }; I- M: ^! a& `+ u. g7 T
};
9 w% t# ?% U" i9 A0 g- w. c" Y& i' L6 }9 j {4 a8 @$ f
} //namespace QtConcurrent6 l* ?. |# o; c+ k' R6 A1 W5 z% ?
% ^& ~. R" f; I5 T5 O3 `) y' ~3 Q
#endif //qdoc
5 Q3 g; S* ?2 i, s/ \1 H
1 N5 c$ ]: i# M; N3 pQT_END_NAMESPACE' [5 h: i2 b; q* O( g& b
QT_END_HEADER9 C% Q7 {$ E$ U( V* I5 ~. G
# T' X1 d1 s s* m Z3 K#endif // QT_NO_CONCURRENT
, g( R* u2 y. P% K" q& e3 D1 b
+ X \8 L2 I* p) A) a( y#endif
& |4 ^0 P$ t7 b6 ]! x# }# ]. E5 X& l
/ Z( Q4 } E1 O- f |
|