|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! b' Y9 @3 J) c+ y! ]+ G7 h8 u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 @9 T1 f* M( N9 m5 Z, X3 J6 _( B
& I# u# s/ q4 X" ?这个头文件内容如下:
% N8 q% t5 ^1 t; D2 c1 T5 ]! }#ifndef QTCONCURRENT_RUNBASE_H
! A5 z" C$ J" l) ]#define QTCONCURRENT_RUNBASE_H2 B& b1 I7 M" _; j! B
+ J. e3 J6 x# [- n# p: I#include <QtCore/qglobal.h>( s2 W& `% h8 J9 i0 M/ @: S' c
/ @" ]: s# a/ [8 X% w5 }! A# E#ifndef QT_NO_CONCURRENT% q8 ~8 c9 B# i4 j7 R" U
d% I G5 Z' Z- F
#include <QtCore/qfuture.h>
3 t9 _$ S% Y: }4 {% s3 i#include <QtCore/qrunnable.h>
& U1 o) P k9 }" ^- \) h#include <QtCore/qthreadpool.h>6 C' A$ V m9 P& ?/ h; ~
) V2 J' ^1 x( ?; o. k3 Q4 ~1 h
QT_BEGIN_HEADER* |+ H7 l! ^9 k+ T$ |# ]1 H
QT_BEGIN_NAMESPACE9 q5 x$ E# u2 j" [/ K7 W9 @ J
1 i( Y7 u' l2 ]7 |0 z
QT_MODULE(Core)* \3 l& j; y9 [2 E9 N: d0 S
9 |; I$ v+ F& T7 C% c#ifndef qdoc
9 x d% x+ i6 M% O! y- c# ~. X! w9 o: C! ]3 Q3 R" \ |( f- A
namespace QtConcurrent {
, k Y! b6 U& d* j# ?
( r: F; f) L4 c Y" Wtemplate <typename T> t7 ]; N O& T; @' O3 p
struct SelectSpecialization- l% E! d. c8 u9 P+ r; S3 z$ E# f, E
{
/ J( D* P/ k0 r1 \- t template <class Normal, class Void>
, y, @7 z0 P3 ~: t struct Type { typedef Normal type; };3 D0 ^, I) A; h3 k# A9 j* k9 t; g
};
8 P2 b( ~# E; u; g
, b( S' t, R' mtemplate <>
/ k- p) |" H8 {' j7 mstruct SelectSpecialization<void>
/ H$ k- d: q# c: i{! n6 o& @$ \' {) W* Y2 G- N
template <class Normal, class Void>
8 p$ v Q* u( o' ^. ~ struct Type { typedef Void type; };
: q9 ]0 s* Z6 @6 m: V};
/ \* Z' h1 R; [9 [0 k" Z, R7 e
3 X2 F3 ~. |$ Ptemplate <typename T>/ C3 Y( v& g5 L4 P4 v' W! p$ {
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
( m) K. m! ?2 l. p7 B% K) t{" o) W- r6 C- R. H" r5 Y4 C, N
public:$ K% x n+ }- j
QFuture<T> start()
G h. E" A0 v0 N& g% i) K {
- l* l- S8 Z9 U1 q this->setRunnable(this);; {. R4 \( v) \$ s1 b% |, T( \
this->reportStarted();% E4 S7 {, K- Z% s" a& b& T
QFuture<T> future = this->future();
5 o9 M; U' N* E2 n. A& {9 \ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);9 x) d& D! c" x
return future;$ U: n+ ]+ h" d- T I
}1 ], H- x T6 u/ F& |
. p/ V* p# R" J, P& j
void run() {}- Q+ M0 q& s! z B& ~
virtual void runFunctor() = 0;
& H4 r. ?4 a8 ^ _7 \; {; p# ~ w. u};5 G; s/ k, J' v+ `1 r
( v# L9 j- T* f6 @template <typename T>! ?6 x6 ?+ a2 {/ ~ r- y
class RunFunctionTask : public RunFunctionTaskBase<T>0 Y, k' p4 ], E+ C; |- ]
{) B* E* o/ U9 `! C9 r
public:
$ w( {0 ~' W) ?# G9 i$ w void run()0 L; m# \3 y# \
{
0 v, {3 d& Q8 B3 j if (this->isCanceled()) {
$ Q1 e+ c" e7 ~7 w _) E0 _3 \ this->reportFinished();; |$ _' x* a; m5 D0 L
return;
1 V; Q# S$ `' j/ @. t* A }
6 y) k7 S( G" B- Q! X this->runFunctor();
: S$ K, Y; K! M$ \/ ^ this->reportResult(result);6 Y% D% M% Q% a) G3 {
this->reportFinished();
5 Q* }4 w2 ^9 l e7 u) E! ~7 R }
. U: h0 \' k$ U1 { T result;
+ v3 Y+ s$ ]1 s: v' k8 k i};
' p& i) v5 L5 y* n8 m; k" B' @- ^9 S: o0 o6 S% |
template <>
% r Z( I# r+ @4 m+ V1 P% jclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
' w1 F. o1 ^# t, V$ _: t$ N{; U( \; P) |0 b9 F
public:
3 k1 p& @2 e5 g1 h0 m h void run()
" Z- Y% Y# |! o r. M {) S. u4 v5 m3 t6 t# G5 @9 o2 l$ b
if (this->isCanceled()) {$ t/ _# m3 O1 f' y) P/ ], T. Y0 L
this->reportFinished();
0 w9 e/ m3 _, E/ j return;; Y7 ^/ J. h5 w1 \" b; ~+ Y
}
! j6 s# g& N. `5 S/ P this->runFunctor();; j7 b" W9 F7 t! g7 v1 ?5 s4 y6 b
this->reportFinished();1 \/ d3 `+ I, \( X
}
5 U7 d0 ]. n' n+ s3 B9 A};# b+ ^' y% F6 F% E6 r H$ _9 u6 Q
/ e ~/ Q' v* h( @2 r6 e$ Z( o9 X& Q
} //namespace QtConcurrent) x" J% h, P4 _8 [% _
$ j& X" B/ P# \3 { b6 g
#endif //qdoc7 p- x% H5 r. }) L
/ N- z! a* l8 B3 V1 V2 b" `% L
QT_END_NAMESPACE
9 b, l- [2 q ~+ zQT_END_HEADER
0 X5 H+ Z, H1 G/ W* V2 y# h0 F- F( B. q; _3 \& \) w R
#endif // QT_NO_CONCURRENT
9 Z3 |5 P% }, _7 K+ z0 X
: x3 W7 s! ~& J; Z v0 j#endif! r' X) X0 D. _% \7 ~( ]. D
5 a K9 X, k3 d" K& m. L
|
|