|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
, \/ h# t9 K9 O( `$ v' O4 B/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'4 h& }: J1 ^: }8 I- {
' V+ o) q2 _1 j
这个头文件内容如下:
( ~ d4 T' j; i- s! J7 r#ifndef QTCONCURRENT_RUNBASE_H
$ G; k I/ Y0 k+ q7 s#define QTCONCURRENT_RUNBASE_H' H9 `5 _6 R' [& w: M) s: N( D
& s1 [9 D, {8 c% A) }' q#include <QtCore/qglobal.h>
8 Q9 I) e5 o: n# }- C: \0 I5 ]! ^0 d3 F: {+ g
#ifndef QT_NO_CONCURRENT
6 \3 {' N7 _0 o9 S4 m' T1 j: y9 y/ P2 n9 \2 N+ F
#include <QtCore/qfuture.h>
/ O; j1 N+ J0 E7 Z#include <QtCore/qrunnable.h>
8 p0 ]9 E5 A2 n; e" n* P#include <QtCore/qthreadpool.h>( k8 \0 f7 p6 x5 i0 W2 s
# K6 @/ A7 E5 F9 Y( k" j
QT_BEGIN_HEADER: `& ]# C: h; {! r6 F9 E6 v
QT_BEGIN_NAMESPACE
3 G9 @: N1 P0 z% z7 V. n, ~- u7 R. g2 f6 _
QT_MODULE(Core)
! y% w# m% a: p/ F; @0 K7 o' [- X q3 }' ~5 i# w, P
#ifndef qdoc' _3 [6 `7 W8 g- o% E# L, U5 }
: m4 o' C1 d. |1 A. E) Znamespace QtConcurrent {
# r% t& x/ i) m/ X7 O8 G6 k
" _" s. J! u1 A" o+ C% Ltemplate <typename T>. B! H' c2 _5 X4 q$ }6 S
struct SelectSpecialization0 h# W6 i" ~, q! R
{
. H7 c; k' Q9 a h5 ^3 B5 c template <class Normal, class Void>
6 X! M# S+ Q) @8 E3 w" B+ B* H struct Type { typedef Normal type; };
! r, z1 `; `# I: ?};. Q: ^5 g' Z: h# ^: e+ L- m
5 I" A3 |4 C- T+ |4 k. g. G
template <>- g: Z/ B: G, n( A/ _' D5 D# S
struct SelectSpecialization<void>& u: H5 ~1 s: ^) ^* ^* V
{. i3 `; c% h W, V& G# `
template <class Normal, class Void>
( i8 ~/ u, L/ \% p/ n( ^ struct Type { typedef Void type; }; I; [* ]6 @3 ~3 T! e
};) {/ O2 G6 N+ N9 G( n! l6 O
1 ^& Z9 H, |% P1 Z* F
template <typename T>* E/ S5 q) Y- l& I, m: [# n
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. X2 {3 O% S7 z( k1 Z2 M
{0 f1 h9 y1 |7 G( X" o5 g1 D- C! R) Y
public:
, o. F8 e3 {! x' C% k" E. [9 V QFuture<T> start()
9 ?: y ^7 ~0 y X7 {7 Q {
& T1 c/ z9 M* a7 R* B A, c1 s this->setRunnable(this);" P$ N A3 G6 x" s8 y
this->reportStarted();7 r, W2 E' o) {
QFuture<T> future = this->future();) W/ v+ O7 M- c( G
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
5 `# r# N7 K0 t; Z% j return future;9 ~% u" D1 ^% h% `% @+ f& W
}
7 c ~# w. ~" \, G5 Q6 w x* Y% b: X0 O
void run() {}
; d3 h4 H& J* y4 x virtual void runFunctor() = 0;
4 J1 C: [0 s( Y7 n6 `& |};5 Z' V8 D- n5 }
2 d) {9 K2 o0 A, y% H
template <typename T>3 s) x/ o9 w+ h! _ X
class RunFunctionTask : public RunFunctionTaskBase<T>
% i4 A9 c0 M2 W& V( P8 g4 G{; ^5 U" E5 p0 m4 D6 l/ t
public:
& ?0 Y5 z2 q1 F. \ ] void run()$ c7 D5 d0 k; ]
{+ c4 `& |! n" X) z; i; J( ]
if (this->isCanceled()) {* }7 ~: L6 a# I) S/ U
this->reportFinished();
: c$ i. E; Y: d* d8 X return;( t# {( f6 e. M- T
}+ S1 j. Y1 S8 Q( e
this->runFunctor();2 p a* N# V6 g. @6 i$ }
this->reportResult(result);
; a0 G( A# `$ U1 d this->reportFinished();
: d z: ?2 i$ D8 P# l: v1 v7 s3 @ }
2 K! D+ h& U w7 _6 B% U T result;
# l$ j, s) F% y% K. U/ z' n) H};5 H9 Y" B$ L! W1 @
3 o" F! A/ e- N( V0 w) s. g) U5 b6 p% K9 D
template <>
: a2 w+ k3 {3 s& vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>- w- {- n% d2 p
{4 L% Q! }+ o" W2 e
public:! t- N, q4 {4 w! h3 C
void run()$ [; Z5 ^! g3 H6 q2 |5 _
{& n( e2 K% ]3 P/ m* y& A( \) V
if (this->isCanceled()) {
$ _ ]( ^8 n- P: W4 A$ R this->reportFinished();
' ^, o! q2 H1 `" i return;
% }* f! n( y3 y) V }
- n9 x. G9 d) M2 V this->runFunctor();
, H$ W0 P! u4 q8 _* j1 p this->reportFinished();
7 p- o& N% @& e; ` }
; W6 d* n% ^5 `$ o6 O1 b};9 _7 U$ C" ~$ @9 Z+ v
1 b( E& j9 I# Q' g' v} //namespace QtConcurrent. h2 i9 L2 ~( r7 s
/ W: d! g, V% U$ [) l% E1 b; n i
#endif //qdoc3 U' S" c# N4 D( H3 ] W. w, x
1 |" r( }- P: ]QT_END_NAMESPACE8 P3 h& w) ^, m7 D, `7 [
QT_END_HEADER
6 Z$ g% C% ~- d/ Q# A3 b u( U" y- n( e! K; z7 a3 k
#endif // QT_NO_CONCURRENT
+ u3 W& e# {$ k( ~
; m, s) v8 z+ C3 i+ }8 ?#endif( l" x7 V* @$ |% A6 B4 n% t3 j
. \% s3 D# ~8 R. p8 x% Z+ n |
|