|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 c* [' E7 v3 D/ l& W2 o/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'/ Y' y) U2 J5 Y! ^
5 z5 C3 V1 A% K" e这个头文件内容如下:
- R! n/ w R! U: C+ C4 V#ifndef QTCONCURRENT_RUNBASE_H
; e+ t, U2 L; a: M& p4 N#define QTCONCURRENT_RUNBASE_H
: a( _7 R& w$ D0 f9 C, `+ O l4 U! F& G9 ~8 M% Y0 Y" U9 x
#include <QtCore/qglobal.h>) \; p. ~& y" M# G# z g
; U1 `3 [$ _) H: i#ifndef QT_NO_CONCURRENT- f: g9 d, p3 C: w f, ~4 n2 o
9 A- T) p9 d) a1 k6 V/ w
#include <QtCore/qfuture.h>
9 m2 g; I7 \' x) P#include <QtCore/qrunnable.h>
7 z8 x0 H7 Z9 ~) |2 l3 s#include <QtCore/qthreadpool.h>
) _, _7 C$ ~! S) M- H, E/ z
4 e3 _: U8 @# f3 o# C, p: ^QT_BEGIN_HEADER
1 S* ~! U4 W5 {6 j5 Z7 I. [1 xQT_BEGIN_NAMESPACE
o& M' p+ \& Q7 R A$ H4 r1 j# L) p& o1 q6 S- h3 l/ G K
QT_MODULE(Core)
/ C' ~9 H" p4 P1 p, C' H6 A2 z3 \0 G7 |# q
#ifndef qdoc
- o) ~0 k6 J# e. c
& h9 p- I% X8 Y7 L2 |9 e8 a9 cnamespace QtConcurrent {
( J4 n1 q3 i v
1 i: `- N# Y* mtemplate <typename T>. R/ ^* t$ [ Y" X# V8 ~
struct SelectSpecialization' _9 z- O* z+ C8 u8 `7 W
{' G. {* ^* p- W# b6 p
template <class Normal, class Void>6 a i. q" j# ~
struct Type { typedef Normal type; };; C4 U. y0 V( N9 T6 S5 G
};- X9 D! q' |9 X5 s
$ ^0 T8 @ p* X$ ?2 e6 ~- |( _template <>8 E9 e& F+ I& Q' I, N9 f
struct SelectSpecialization<void>
6 N. p& q" h8 W9 ^7 P. q8 F{( e8 w: s4 R( ^" D/ ]
template <class Normal, class Void>
7 L% X4 E2 X$ a9 H struct Type { typedef Void type; };
% H; ?+ w) }- F+ A; y4 `7 y) j};
' N8 q; R* X- H) O; V1 H) N: v" G* ~& N3 a/ Z
template <typename T>
6 K5 p3 C: A* Q# ^/ j7 V( aclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable1 s! E8 L5 ~/ d8 o( O
{8 d8 o, z- g! C7 K
public:
7 ~) P! k4 p, X+ f3 A* O$ y6 m# q/ D QFuture<T> start()* o5 B5 y9 U* m( l
{
9 w+ d' }8 y7 ^7 i this->setRunnable(this);
, _7 P- e& {; s! D5 k- ^1 Q this->reportStarted();9 j/ r) `, z4 ^) m1 u' W: @ ]
QFuture<T> future = this->future();, o% b; |% u" M
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);7 Z6 \, o4 o5 [# C; c/ L
return future;
0 C- Q( Y/ z8 `( g- t$ Z }
% V6 c6 _4 b0 D+ X% s' V+ q% b( ^5 f) a K1 S- X) @. l b4 _
void run() {}8 V/ k% h0 A$ X+ m% U1 L
virtual void runFunctor() = 0;
' P) S6 m+ ^: i: |# V) P7 }& |};& ?$ w; `5 K2 g, B+ K( W
, q8 L# H$ d7 {6 gtemplate <typename T>& J. S% {: S8 R, I, A% m
class RunFunctionTask : public RunFunctionTaskBase<T>4 [5 Y& b$ I5 y; ]# h+ G
{
0 h. z0 s r8 g: epublic:
- W4 g' ~9 L6 e0 f3 t void run()+ ?6 _8 I2 E) y5 C ]: q
{) \7 @3 P: u5 \+ k# m
if (this->isCanceled()) {
2 V4 ^: m5 J; C V0 T! N; u1 _ this->reportFinished();4 n2 H) f+ U: ~! @
return;; K# y% i8 [8 c# }5 S- r( U3 G1 r
}4 n; ?" `2 o( R8 z X' M
this->runFunctor();: } F" e( h+ F% C* i
this->reportResult(result);
\, p% l- Z6 F% |! L9 m this->reportFinished();( G _# ]8 f- q6 E3 R) g
}
( e& O' l! ~ D; A" t T result;) t& B5 g, n- |* Z8 [
};
/ I3 n, _' ?7 N7 I" C! n5 y! u: e1 y* w* m
template <> n2 |8 y x! w% y' Z
class RunFunctionTask<void> : public RunFunctionTaskBase<void>7 J+ f8 y! ]2 C- s" o) B2 `. _
{
, @ g0 u+ [ f# ^0 z8 a/ ppublic:6 ^- g. K" v9 m7 d; R
void run()6 C' I; c; }$ k) [2 k5 y
{
/ a# s. b7 u9 {# c% h- v6 ] if (this->isCanceled()) {) Z) x# X& M6 }( v2 O0 `2 U
this->reportFinished();
& q7 E' P( U* ^3 D2 }& l return;* Q W% o* \- @2 T' j% [& \' v
}) }. m: o+ X5 s) H4 w
this->runFunctor();+ t U* n1 V0 w# r
this->reportFinished();
% @' |/ G) o9 E4 V3 ?0 Q; [" C }
9 I2 i! X& E5 K% f3 J8 Z+ K- z};& I( w5 m! Y8 w n; g2 Y
0 M' R, f- ~0 I4 D. ?, G} //namespace QtConcurrent5 o: u4 \) W# |5 n8 A
; V4 p( ~5 l9 x. B2 w, F% p
#endif //qdoc
9 v/ @* l* [4 A0 _" N1 u$ ?. R" e2 B) V6 ]
QT_END_NAMESPACE8 n5 Q z5 o' Z+ P- M( L* Z
QT_END_HEADER; l! Y/ J- j" q, s. {4 j; A
: P* s. ]! J/ A+ I) D7 `9 Z: M# v7 [
#endif // QT_NO_CONCURRENT
+ m2 J9 v) Z2 |5 s3 [7 ^) k/ _ E) c
5 U+ c1 f8 G6 b#endif* i; T3 _3 X1 G
! n" A" P& @6 c4 `! D2 p
|
|