|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% j* _$ a) C4 s9 o" I7 L7 c0 v9 E
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'1 J! D0 K% @6 ?$ _ E) q/ z
% ^/ Q. N4 N' \) m4 N" ~
这个头文件内容如下:5 x1 D5 ^/ p4 s- X) z D& o
#ifndef QTCONCURRENT_RUNBASE_H+ m2 A$ t0 v" _! H4 a1 ?
#define QTCONCURRENT_RUNBASE_H3 W! J8 O6 m& V5 W+ J0 J* z
% K6 v& b( O5 e#include <QtCore/qglobal.h>
+ o+ j; D5 u/ r* I: S3 R
) F* o$ M" y: K- \4 Z1 k#ifndef QT_NO_CONCURRENT
* [5 z8 K1 p% h( B- p/ O) Y( m; q! C; D- x
#include <QtCore/qfuture.h>
! g* o2 H5 Q& ~) F& H; I* w$ j#include <QtCore/qrunnable.h>5 ]" {- m& n" n0 u& h1 s" F$ W
#include <QtCore/qthreadpool.h>
3 V. @6 `. J- p: D; h9 Z; R ~0 T
QT_BEGIN_HEADER
6 d" j- v1 H. G0 W: I8 `: lQT_BEGIN_NAMESPACE6 c/ e- M/ F8 Y% x
& v$ ` u- ?8 L- j+ Z: g
QT_MODULE(Core)1 y9 j( t& b4 z1 z! a$ o% y
3 P Y0 F1 H! ]2 {. u6 \8 I#ifndef qdoc
: J* d& V% k& ~8 o0 c* \
7 Q T( |& t+ q* _+ q6 K: D* u4 Wnamespace QtConcurrent {
# P$ v! Q$ I5 N+ M ^! y% H- @% C8 a+ k* B1 n M, Z, G \
template <typename T>
; T; ~# {6 f, E! x- I% G% {struct SelectSpecialization
9 V0 N$ s* z* M- i+ [$ @8 z, C{
/ m1 |9 x8 s g. |/ ?9 p% | template <class Normal, class Void>
" K6 W7 p- R; G" b/ P7 S struct Type { typedef Normal type; };4 U# {: E7 d+ K, G2 i3 g! k4 ^
};* j; c' Z/ {$ h1 V
- Z1 n% T" I/ H q9 \2 s4 ctemplate <>! a6 Q# j1 A# \* q
struct SelectSpecialization<void>
1 o% ^1 N& w# x \{8 Y2 q2 Q* d- @ [
template <class Normal, class Void>
* I, V% d* D+ Q0 x struct Type { typedef Void type; };8 `& G; d+ h) i) k
};
. }% x- h& H; @3 u6 ^' P
9 P% o( k! f4 r$ v. S+ xtemplate <typename T>- X" ?1 n* O1 e, m( d3 |
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable J% d' D+ ?7 a4 L
{$ j5 r; `1 D; S! H# E
public:3 T0 b5 m! T3 |" O; v
QFuture<T> start()
; X2 m n9 O& i8 B8 X$ R {
. E/ n" T5 [5 x this->setRunnable(this);
$ t/ D4 |) W* i4 X4 Z- f6 q this->reportStarted();* F8 f. g5 D$ i" u5 H
QFuture<T> future = this->future();! L2 i5 x5 _/ w$ H( x" f5 r
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: ^9 d M5 u) q! b z' D return future;
7 C; ~: O O9 m5 o4 m1 Z }
% m1 P9 m5 \* u& h- j2 e C" s
2 A% N# U! M7 k6 E( A" M6 f void run() {}
, b% V) W1 t+ T9 R virtual void runFunctor() = 0;
, m( ~" p1 O4 N: |0 a" K! D8 ~& z! O};* J z4 }4 ]8 y
: c- {" I e! E& N
template <typename T>- I9 Y/ @ Z7 d' ~* W8 L
class RunFunctionTask : public RunFunctionTaskBase<T>+ W4 Z/ u5 P% D
{1 c3 S# S# i# Q" \# V
public:/ o% y. t* B2 b5 }, W
void run()
% \( Y+ ]- c) F9 P {/ s4 _: v/ t+ e/ s" U
if (this->isCanceled()) {
' x8 O% f+ M! j this->reportFinished();) t2 g; `# X3 E6 A, z# k
return;
8 r1 ~, W1 p" Y0 X( y5 I }
% c; t1 d! G. r$ C this->runFunctor();. {# ^7 f# f6 x' o$ Y. m7 l0 @
this->reportResult(result);) g) U" E+ G5 j- ?
this->reportFinished();
~/ }. \3 K, \2 j }
4 T3 s3 ?, n& j5 r. S T result;
: E1 Q% D( m& D( [" v, J};
. x" A: b+ m# m1 H/ X
- o$ p! F4 P7 \3 d# B" Etemplate <>
$ h% f/ w1 i' I2 u9 S0 p: s- [class RunFunctionTask<void> : public RunFunctionTaskBase<void>
# h/ a7 S: `& ?( m( i- L{
" a7 m: o. J& W- ]5 j0 R# {public:
( e& S6 s8 r' |- Y% m! a void run()1 @$ E. r' _% a) R7 e* L; O" X
{
D9 m" n% H( v/ Y V2 S! C. g if (this->isCanceled()) {+ k( K% ~* r/ K( q
this->reportFinished();
3 ]1 U5 L- r- E6 _8 b( r return;
! A$ a# S0 p& i6 v }/ A- M9 n+ p+ D% B: N3 q" N, G
this->runFunctor();$ s7 |, ]9 i4 L, L8 Q' q
this->reportFinished();
; }2 s9 L+ O. u9 m }
5 X% I! e$ R0 [" A% ?& t V$ L};
^# }5 ~0 b7 ^3 n( V( g9 m) n9 K, k( l, Y( o4 J
} //namespace QtConcurrent ~1 h4 A( [' z3 b4 t; ^
4 s" L. A. n* g% t% I#endif //qdoc2 Q; n5 n; P+ M6 I1 X. N. D
) j( O5 [9 W0 q: qQT_END_NAMESPACE) T9 d: C' [$ k* _0 x
QT_END_HEADER
+ U8 x9 I* v6 J4 i
& n5 y( ~4 W1 I0 c: y#endif // QT_NO_CONCURRENT0 [* Q8 i, U, K# D
/ S2 e0 l4 ?9 D$ N7 Q7 ^5 S
#endif) n& L: |, N: Q" p0 T
& k2 b( U* X% c% L4 q6 l
|
|