|
|
我对syslink进行交叉编译到arm,但是出现如下错误:: m& E$ g$ X; |$ Z- I; @
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'9 Z7 O' \. O' K$ r, ]$ S& {7 a
% p, T+ t4 J5 H2 |这个头文件内容如下:
3 c! k. Y- V( N" v#ifndef QTCONCURRENT_RUNBASE_H
$ R( f' s, h3 M0 y4 e9 W" U#define QTCONCURRENT_RUNBASE_H
. e; U! w# m( \5 v+ G7 T0 B' o& \9 P2 `4 i( l7 \
#include <QtCore/qglobal.h>) |# U$ [- w; ^0 s# J$ j
; M B2 h% U8 q* b+ a) B#ifndef QT_NO_CONCURRENT) t3 T4 U: I% j. }, Y0 |4 H* `
; O0 _& n5 ?* m5 Q#include <QtCore/qfuture.h>& w; Y8 q% d8 m' Q' K/ }2 O" w& x
#include <QtCore/qrunnable.h>
$ E) R m k- [2 w#include <QtCore/qthreadpool.h>
* y+ l% b3 I4 S9 ]. }! d/ B! b) W# D! Q) n1 ?5 H. M
QT_BEGIN_HEADER
; Z5 T# f- _) l2 v4 _QT_BEGIN_NAMESPACE
; A; @6 u" Q; O6 C$ e( [5 \2 E8 ?/ X4 i2 q3 Y
QT_MODULE(Core)& C" ~2 S) G2 n
8 F5 o# N+ f, }. Z" K. J* l
#ifndef qdoc
6 o4 _! ~+ j [. a4 o
. M0 j* o, E9 r# j( J w& r, Pnamespace QtConcurrent {
2 a$ m) q4 u/ Y) G, |4 t" E5 U* l- Z3 ]5 x3 n t& ^7 s
template <typename T>
; s" e% V5 w4 j" l& mstruct SelectSpecialization0 M9 F( ~) m! ~1 c \& {% C2 T8 x8 K
{
$ G; ?6 i2 @0 V' \. l template <class Normal, class Void>
2 ?. J/ z+ k5 Q# Z8 o struct Type { typedef Normal type; };
* a! d* ~7 [2 i$ s};; [, J$ B- A3 D8 y, v3 f
3 z" v0 d2 k. [1 b% y8 wtemplate <>
) D9 j* y& ]* ^+ S3 l n" `' G' Sstruct SelectSpecialization<void>
4 q# }, j# l4 E" t3 F' }{
# X9 I' a! {7 `) K2 A template <class Normal, class Void>
1 |0 R( [3 N! U: ] struct Type { typedef Void type; };/ t, z- L" R$ j/ W" Q
};
0 k% |4 y" D7 t9 N( y3 r. d/ t) G. Y" `4 m
template <typename T>
6 K( i- I( u- z5 n* [class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) o/ q6 j. _9 i1 H/ {3 X- e8 G g{
. T6 A3 p- ~% Mpublic:. J Y; g" j B7 R
QFuture<T> start()
! f/ x, A8 Q/ F6 a+ m1 L {8 Y, l" G" F9 L B
this->setRunnable(this);
. Q h- ~! M4 I- r/ {$ \. d7 \ this->reportStarted();
8 m- p' I, r' H4 M7 I* z; _ QFuture<T> future = this->future();
3 ]2 @8 ? R: S! y. w$ l QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; s G6 C) W- R) @$ g! g return future;/ `6 t! r6 ^7 r0 k1 Z# m
}
H2 V$ h) w1 g& B; M6 Z/ h# e/ ]. }# X6 F+ g0 a2 D$ |! H
void run() {}$ m: F `- F: T, j' j4 X V
virtual void runFunctor() = 0;1 [0 X/ J+ [3 }
};
$ P* x4 x/ k3 E% u
9 D" q8 U5 M3 W" l( n U6 qtemplate <typename T>
. k r$ ^* I% l2 zclass RunFunctionTask : public RunFunctionTaskBase<T>3 M. D7 U, q9 [6 [; n' S1 }- \
{: k! g& {, }/ k- F1 S) u
public:
+ F/ x" x/ Z6 I void run()+ L2 U4 J; j* p1 N3 X$ ^8 q( E
{3 E/ n' R% R; ?/ l" L- x+ z
if (this->isCanceled()) {
$ w _* v6 v" A$ Q5 ? this->reportFinished();
7 n2 W9 m' S% ]. w+ J1 g8 T return;
! e3 ?8 B7 b- i, n' c }# z& t0 \, \3 b! q& H$ m
this->runFunctor();& O' W6 G" @% a6 e( j! G
this->reportResult(result);! _4 l) r3 A* b1 N# A3 Y
this->reportFinished();
8 [0 \' H1 O7 o6 ^% n! l; l+ X }& S( S( o8 W) C- f+ n9 S
T result;
; v4 u) u( n- m$ m6 |};3 W1 A2 D" c/ T2 k
$ W% T2 r$ L+ z2 d/ F! Ftemplate <>$ K1 |6 X- T; ?5 E4 b/ q/ w' n% j) y
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
# o {8 b4 Q+ [) Y- }( m$ a{) W( F/ h- w- F5 ?( Z# d
public:
& M( [# }! c9 G0 t* N void run()
, `' \3 t+ o/ u3 D0 o" H' m) W {
2 B) S g! [+ d if (this->isCanceled()) {$ A' D% x$ L- x/ W& z7 N
this->reportFinished();2 I& }" K# w/ @- E' A3 p3 |
return;9 b H* B* ]! j' U: M+ G. B' N+ b
}" S3 |& r0 Q8 L7 `; u" Y
this->runFunctor();
& ], F& [2 C1 m/ A7 }* H2 q. t this->reportFinished();
# l# z" B* ~0 N1 d4 Y/ J& D }
9 H1 ~' ^0 p/ P- u};( n5 p- p: J1 _. i2 ~
8 _ P( ^- t! _2 i} //namespace QtConcurrent
/ P. C+ L; B" a& e( g# ~$ U2 K, y3 Z( z# l0 O+ G4 n5 h7 V
#endif //qdoc. r5 y7 c9 ?5 `
$ R% I0 S' ^1 h: dQT_END_NAMESPACE
$ t) I) A9 s4 q/ |# b) X! W/ I& KQT_END_HEADER
( w2 o1 K3 O5 _; ]7 M
; F% ^& ~, w( i3 ]; N- Q#endif // QT_NO_CONCURRENT+ [" V6 Z% u# S" O0 T
4 ]& _, U$ Q# L! L4 ?#endif5 R9 }0 l7 A/ t8 s( Y
3 ]! l6 ~* @+ s O |
|